BroadcastReceiver.onReceive вызывается ровно один раз за смс?

У меня есть объявление BroadcastReceiver для android.provider.Telephony.SMS_RECEIVED. Я собираюсь перехватить некоторые SMS, поэтому я буду прерывать Broadcast(), но не для всех SMS.

Но когда я извлекаю SMS из намерения, думаю, я могу получить БОЛЬШЕ, чем одно SMS?

Object[] messages = (Object[]) intent.getSerializableExtra("pdus");

сообщения является объектом [], это означает, что это может быть несколько SMS? или я могу с уверенностью предположить, что это всегда будет одно SMS.

Моя проблема в том, что если я получаю несколько SMS и мне нужно перехватить только одно, я не могу просто работать правильно, потому что, если я abortBroadcast(), пользователь потеряет несколько законных SMS, и если я не получу, он получит несколько SMS, он не должен,

Я на Android 2.2

1 ответ

Я сам не пробовал, но по ссылкам ниже правило "один раз за смс" не является правильным. В частности, onReceive вызывается с messages.length > 1 в случае составных сообщений.

Я думаю, что эти ссылки будут полезны:

Другие вопросы по тегам