2013-06-13 7 views
5

Ciao Ho il seguente ricevitore broadcast in modo che la mia attività venga comunicata quando ricevo un messaggio sms. L'unica cosa che non sono stato in grado di capire è come ottenere l'id dei nuovi sms. Come si può fare? So come ottenere il numero di telefono e un messaggio, ma non ho bisogno che ho bisogno è id qualsiasi aiuto sarebbe molto apprezzatoOttieni l'ID SMS dal destinatario della trasmissione

BroadcastReceiver sentSmsBroadcast = new BroadcastReceiver() { 
      @Override 
      public void onReceive(Context context, Intent intent) { 
       if (intent.getAction() == SMS_RECEIVED) { 
        Bundle bundle = intent.getExtras(); 
        if (bundle != null) { 
         Object[] pdus = (Object[])bundle.get("pdus"); 
         final SmsMessage[] messages = new SmsMessage[pdus.length]; 
         for (int i = 0; i < pdus.length; i++) { 
          messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]); 
         } 
         if (messages.length > -1) { 
          //Get sms id 
         } 
        } 
       } 
      } 
     }; 
     IntentFilter filterSend = new IntentFilter(); 
     filterSend.addAction("android.provider.Telephony.SMS_RECEIVED"); 
     registerReceiver(sentSmsBroadcast, filterSend); 

risposta

1

Si riferisce al ref id messaggio che viene utilizzato per fare il bene dedup? Questo campo si trova in SMSMessage, tuttavia l'API non è pubblica. Dovrai fare qualche riflessione per estrapolarlo. Cerca in com.android.internal.telephony.SmsMessageBase

+0

@ user577732 sei riuscito a estrarre l'ID sms? – FIXI

+0

@ user577732 sei riuscito a estrarre l'ID sms? –