PDA

View Full Version : خواندن چند اس ام اس چند صفحه ای



sara_orkide
سه شنبه 16 اردیبهشت 1393, 20:10 عصر
سلان دوستان خسته نباشید
من یه برنامه نوشتم که اس ام اس های دریافتی از یک GSMModem رو میخونه و در یه فایل text ذخیره می کنه ، مشکلم با ارسال چند صفحه ای اس امس . تا وقتی یه صفحه میاد همه چی خوبه ولی وقتی اس ام اس متنش زیاد و به صورت چند تیکه فرستاده می شه چطوری بخونمش و در فایل text ذخیرش کنم ؟؟؟؟؟؟؟؟؟؟؟

Nevercom
چهارشنبه 17 اردیبهشت 1393, 00:53 صبح
public class SMSReceiver extends BroadcastReceiver {
private static final String SMS_EXTRA_NAME = "pdus";
private static final String ACTION_SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";


@Override
public void onReceive(Context context, Intent intent) {
// // Get SMS map from Intent
String action = intent.getAction();


if (action.equals(ACTION_SMS_RECEIVED)) {


String address, str = "";
int contactId = -1;


SmsMessage[] msgs = getMessagesFromIntent(intent);
if (msgs != null) {
for (int i = 0; i < msgs.length; i++) {
address = msgs[i].getOriginatingAddress();
// contactId = ContactsUtils.getContactId(mContext, address,
// "address");
str += msgs[i].getMessageBody().toString();
// str += "\n";

}


}


// Toast.makeText(context, str, Toast.LENGTH_LONG).show();
}

public static SmsMessage[] getMessagesFromIntent(Intent intent) {
Object[] messages = (Object[]) intent.getSerializableExtra("pdus");
byte[][] pduObjs = new byte[messages.length][];


for (int i = 0; i < messages.length; i++) {
pduObjs[i] = (byte[]) messages[i];
}
byte[][] pdus = new byte[pduObjs.length][];
int pduCount = pdus.length;
SmsMessage[] msgs = new SmsMessage[pduCount];
for (int i = 0; i < pduCount; i++) {
pdus[i] = pduObjs[i];
msgs[i] = SmsMessage.createFromPdu(pdus[i]);
}
return msgs;
}
}