2016-10-14 5 views
-1

Я разрабатываю приложение для Android, которое получает SMS, используя широковещательный приемник, когда он приходит. Вот код:Приём сообщений в Inbox с помощью Ящика в той или иной форме

if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) { Bundle bundle = intent.getExtras(); SmsMessage[] msgs; if (bundle != null) { //---retrieve the SMS message received--- try { 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]); String address = msgs[i].getOriginatingAddress(); String body = msgs[i].getMessageBody(); } } catch(Exception e) { Log.d("Exception caught",e.getMessage()); } } }

Проблема заключается в том, что несколько сообщений, которые я получаю в двух или трех частей. Я не знаю, как присоединиться к этим частям сообщений. Как я могу обнаружить, что первая часть сообщения должна быть объединена со следующим сообщением части.

Первая часть: Your airtel mobile ********** online recharge txn ID ************ o

Вторая часть: f Rs *** has been initiated. Please keep the txn id for future refe

Третья часть: rence.

ответ

1

Вы должны добавить тело сообщения (части). изменить

  String body = msgs[i].getMessageBody(); 

в

  String body += msgs[i].getMessageBody(); 
0

Проблема находится внутри вашего цикла попробовать это, вы должны быть хорошо

Bundle bundle = intent.getExtras(); 

    SmsMessage[] msgs = null; 

    String str = ""; 

    if (bundle != null) { 
     // Retrieve the SMS Messages received 
     Object[] pdus = (Object[]) bundle.get("pdus"); 
     msgs = new SmsMessage[pdus.length]; 

     // For every SMS message received 
     for (int i=0; i < msgs.length; i++) { 
      // Convert Object array 
      msgs[i] = SmsMessage.createFromPdu((byte[]) pdus[i]); 
      // Sender's phone number 
      str += "SMS from " + msgs[i].getOriginatingAddress() + " : "; 
      // Fetch the text message 
      str += msgs[i].getMessageBody().toString();    
      str += "\n"; 
     } 

     // Display the entire SMS Message 
     Log.d(TAG, str); 
    } 

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

  • Нет связанных вопросов^_^