2013-06-13 3 views
5

Hallo Ich habe den folgenden Broadcast-Empfänger, so dass meine Aktivität erzählt wird, wenn ich eine SMS-Nachricht erhalte. Das einzige, was ich nicht herausgefunden habe, ist, wie man die ID der neuen SMS bekommt. Wie kann das gemacht werden? Ich weiß, wie die Telefonnummer und die Nachricht zu bekommen, aber ich brauche nicht, dass ich es id jede Hilfe wäre sehrErhalten Sie SMS-ID aus Broadcast-Empfänger

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

Antwort

1

Sie erkannt werden, beziehen sich auf die Nachricht ref id, die verwendet wird dedup Recht zu tun? Dieses Feld befindet sich in der SMS-Nachricht, aber die API ist nicht öffentlich. Sie müssen etwas nachdenken, um es auszugraben. Suchen Sie in com.android.internal.telephony.SmsMessageBase

+0

@ user577732 konnten Sie die SMS ID extrahieren? – FIXI

+0

@ user577732 hast du die sms id extrahieren können? –