Мой ресивер, он отлично работает когда приходят короткие смс, но при больших, перехватывает кусками.
@Override
public void onReceive(Context context, Intent intent) {
Log.d(LOG_TAG, "onReceive()");
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
SmsMessage[] phonenum = null;//
if (bundle != null) {
// ---retrieve the SMS message received---
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
for (int i = 0; i < msgs.length; i++) {
msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
body += msgs[i].getMessageBody().toString();
}
// ---retrieve the SMS senders number ---
phonenum = new SmsMessage[pdus.length];
for (int i = 0; i < phonenum.length; i++) {
phonenum[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
PhoneNUMBER += phonenum[i].getOriginatingAddress();
}
Получается так, что если приходит большое сообщение, состоящее из 2 или 3 смс, то он его полностью не берет, а помещает в переменную body, только первую часть, а остальные вообще не обрабатывает. Получается пользователь видит первое СМС, цельной картины не видит, а остальные смс приходят обычным путем, через уведомление.
Так вот хотел узнать как перехватывать такие сообщения?
Ответ
Держи кусочек код для перехвата мультипартных смсок. Возвращает Map
Комментариев нет:
Отправить комментарий