Android SMS-Zustellungsabsicht gibt immer -1 zurück

9

Ich habe auf Android ein seltsames Problem. Ich möchte auf eine Lieferabsicht achten, wenn ich eine SMS über meine App sende. Hier ist, was ich bisher gemacht habe:

%Vor%

Jetzt ist das Problem, dass, wenn die onReceive() -Methoden meiner Broadcast-Empfänger aufgerufen werden, ich die Methode getResultCode() aufrufen und sie immer -1 zurückliefern! Selbst wenn das Telefon ausgeschaltet ist, ist es unmöglich zu verfolgen, ob die SMS zugestellt wird oder nicht!

Ich habe die Nummer mit dem GoSMSPro überprüft und eine SMS geschickt, die fehlgeschlagen ist. Das Interessante daran ist, dass wenn ich mein Handy in den Flugmodus setze, ein Ergebniscode gleich 2 ist, was SmsManager.RESULT_ERROR_RADIO_OFF

ist

Jetzt ist die Frage, was ist hier falsch?

    
MohammadReza 08.02.2014, 18:08
quelle

3 Antworten

0

Die Dokumentation zu sendTextMessage gibt Folgendes an:

  

sentIntent: Wenn nicht NULL, wird PendingIntent gesendet, wenn die Nachricht erfolgreich gesendet wurde oder fehlgeschlagen ist. Der Ergebniscode lautet Activity.RESULT_OK ...

Wenn Sie Activity.RESULT_OK aufrufen, lautet der Wert -1.

Also ist der resultCode von -1 tatsächlich RESULT_OK.

Im Allgemeinen ist es am besten, nicht auf numerische Werte zu schauen, sondern zu versuchen herauszufinden, welche Konstante sie darstellen.

    
Nick Palmer 15.08.2014 07:11
quelle
0

mach das so:

%Vor%

und dein Empfänger:
Beachten Sie, dass Sie "Activity.RESULT_OK" anstelle von Nummer

verwenden %Vor%

Erlaubnis:

%Vor%

diese Berechtigung zum Senden und Empfangen von SMS verwenden.

    
MHP 16.08.2014 03:38
quelle
0

Versuchen Sie diesen Ansatz: Um eine Textnachricht zu senden, verwenden Sie sendTextMessage von SMS Manager.

%Vor%

Der erste Parameter "Pending Intent" (sentIntent) wird ausgelöst, wenn die Nachricht erfolgreich gesendet wurde oder fehlgeschlagen ist. Der Ergebniscode für den Broadcast-Empfänger, der diese Absicht empfängt, ist einer der folgenden.

%Vor%

Der zweite ausstehende Parameter (deliveryIntent) wird nur ausgelöst, nachdem der Empfänger Ihre SMS-Nachricht erhalten hat.

Nach Sende- und Auslieferungsereignissen werden entsprechende Nachrichten über Toast angezeigt.

activity_main.xml

%Vor%

MainActivity.java

%Vor%

Hoffe das hat geholfen!

    
vishal arote 16.08.2014 06:59
quelle

Tags und Links