Вот так выглядит мой BroadcastReceiver:
public class IncomingSMSListener extends BroadcastReceiver {
private static final String SMS_EXTRA_NAME = "pdus";
@Override
public void onReceive(Context context, Intent intent) {
SmsMessage[] messages = fetchSMSMessagesFromIntent(intent);
}
private SmsMessage[] fetchSMSMessagesFromIntent(Intent intent) {
ArrayList<SmsMessage> receivedMessages = new ArrayList<SmsMessage>();
Object[] messages = (Object[]) intent.getExtras().get(SMS_EXTRA_NAME);
for (Object message : messages) {
SmsMessage finalMessage = SmsMessage
.createFromPdu((byte[]) message);
receivedMessages.add(finalMessage);
}
return receivedMessages.toArray(new SmsMessage[0]);
}
}
Так что же это за массив сообщений, которые я получаю? Являются ли каждое из этих сообщений в массиве отдельным сообщением, разделяемым системой, когда оно превышает допустимое количество символов для SMS, то есть 160 символов? Или это действительно совершенно разные сообщения, которые приходят одновременно, когда телефон некоторое время не подключен? Может кто-нибудь прояснить это для меня? Я не могу использовать эмулятор, чтобы выяснить это, потому что есть сообщенная ошибка, которая заставляет эмулятор шифровать длинные входящие SMS-сообщения. Заранее спасибо.