2012-04-05 2 views
0

Я могу поймать новые входящие SMS-сообщения. Но если это многостраничное сообщение, мой широковещательный приемник получает все части сообщения в несколько раз.Слушайте входящее многостраничное SMS-сообщение

Есть ли способ получить сообщение в одно время - например, приложение для обмена сообщениями по умолчанию?

+1

Откуда вы знаете, что приложение обмена сообщениями по умолчанию получает сразу все сообщение? Я предполагаю, что он получает их отдельно, а затем объединяет их внутри. – slayton

+0

@slayton Спасибо. Поэтому я думаю, что могу сравнить datetime и объединить все части в один. Вы считаете, что где-то есть флаг, который указывает, что это сообщение является частью большого сообщения? –

+0

Я не знаю, но вы всегда можете посмотреть источники Android и посмотреть, как они это делают. – slayton

ответ

3

Holy ...!

После прочтения источника Android(), я понимаю, что это глупый вопрос ...

Вот мой приемник:

@Override 
public void onReceive(Context context, Intent intent) { 
    Log.d(ClassName, "received SMS"); 

    Bundle bundle = intent.getExtras(); 
    if (bundle != null) { 
     Object[] pdus = (Object[]) bundle.get("pdus"); 
     // here is what I need, just combine them all :-) 
     final SmsMessage[] messages = new SmsMessage[pdus.length]; 
     Log.d(ClassName, String.format("message count = %s", messages.length)); 
     for (int i = 0; i < pdus.length; i++) { 
      messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
     } 
    } 
}// onReceive() 

Упс ... Я был слишком ленив, чтобы Посмотрите мой код. Я уже получил все части сообщения за раз.

+0

Пожалуйста, проверьте ответ здесь http://stackoverflow.com/questions/7469881/broadcastreceiver-for-multipart-sms Каждое намерение содержит одно сообщение, включая все его части. Это просто –

Смежные вопросы