Android PendingIntente Extra

8

Ich versuche, SMS-Nachrichten von einer Android App zu senden. Ich verwende PendingIntent, um einen Broadcast-Empfänger zu verwenden, um zu prüfen, ob er gesendet wurde. Da der sendTextMessage-Aufruf per SMS erfolgt, muss ich einige "extra" -Daten senden, um die tatsächliche SMS zu identifizieren, so dass mein Broadcast-Empfang eine bestimmte SMS-Nachricht bearbeiten kann.

Hier ist mein Sendecode:

%Vor%

Das Problem ist, dass mein Broadcast-Empfänger mein Extra "foo" nicht lesen kann:

%Vor%

smsID wird einfach null.

Mein Rundfunkempfänger ist wie folgt registriert:

%Vor%

Da der Intent-Filter funktioniert, was mache ich falsch? Warum werden die Extras nicht auch gesendet?

Jede Hilfe wird geschätzt. Danke

    
jtnire 14.03.2012, 16:24
quelle

1 Antwort

14

Was ich vermute, ist passiert (zumindest ist es mir passiert), dass du die SMS_SENT-Absicht woanders vorher verwendest, wobei zu dieser Zeit diese Absicht nicht "foo" in den Extras hat. Wenn Sie PendingIntent.getBroadcast mit derselben Absicht und demselben Anforderungscode aufrufen, erhalten Sie die ursprüngliche ausstehende Absicht zurück.

Wenn es eigentlich die gleiche Absicht ist, müssen Sie etwas wie PendingIntent verwenden. FLAG_UPDATE_CURRENT , um die Absicht mit den neuen Extras zu aktualisieren. Wenn es nicht die gleiche Absicht ist, sollte es einen anderen Anforderungscode haben, so dass es nicht mit der anderen Absicht übereinstimmt (weshalb das Eingeben eines eindeutigen Anforderungscodes funktioniert hat).

    
dule 14.03.2012 16:46
quelle