2013-06-13 17 views
5

Witam Mam następujący odbiornik transmisji, więc moja aktywność jest informowana, gdy otrzymam wiadomość SMS. Jedyne, czego nie byłem w stanie wymyślić, to jak uzyskać identyfikator nowego SMS-a. Jak to zrobić? Wiem jak zdobyć numer telefonu i wiadomości, ale nie muszę, że muszę to id każda pomoc będzie bardzo mile widzianeUzyskaj identyfikator SMS z odbiornika transmisji

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); 

Odpowiedz

1

którego się odnosimy id ref wiadomości, który jest używany do zrobić dedup prawo? To pole jest w wiadomości SMS, jednak api nie jest publiczne. Będziesz musiał zrobić refleksję, aby to wykopać. Spójrz na com.android.internal.telephony.SmsMessageBase

+0

@ user577732 czy potrafiłeś wyodrębnić identyfikator sms? – FIXI

+0

@ user577732 czy potrafiłeś wyodrębnić identyfikator sms? –

Powiązane problemy