Go SMS kürzlich aktualisiert mit einer neuen Funktion "Andere Benachrichtigung deaktivieren". Die Funktion bewirkt, dass andere Anwendungen, die die eingehende SMS-Übertragung abhören, nicht ausgelöst werden. Zum Beispiel hört meine Anwendung, Shady SMS, die eingehende SMS-Sendung, um Benachrichtigungen zu senden und die SMS-Nachricht tatsächlich zu extrahieren und zu speichern.
Wenn diese neue Funktion in Go SMS aktiviert ist, sendet Shady keine Benachrichtigung oder speichert die Nachricht nicht auf die eingehende SMS-Übertragung.
Go SMS muss den Broadcast-Empfänger meiner Anwendung irgendwie abmelden, da die eingehende SMS-Übertragung nicht abgebrochen werden kann. Mein Intent-Filter ist auf Android: Priorität="0" eingestellt.
Irgendwelche Gedanken?
Mein Intent-Filter ist auf Android: Priorität="0" eingestellt.
Dies ist die niedrigste mögliche Priorität. Alle anderen Anwendungen erhalten zuerst ihre Chance, bevor sie zu Ihnen kommen. Zitieren Sie die Dokumentation :
Er steuert die Reihenfolge, in der Broadcast-Empfänger zum Empfang von Broadcast-Nachrichten ausgeführt werden. Diejenigen mit höheren Prioritätswerten werden vor denen mit niedrigeren Werten aufgerufen. (Die Reihenfolge gilt nur für synchrone Nachrichten; sie wird für asynchrone Nachrichten ignoriert.)
Also rufen sie einfach abortBroadcast()
auf. Sie haben wahrscheinlich ihre Priorität auf dem Dach.
GoSMS hat die Priorität 2147483647, aber das ist nicht "maximal" (es ist die größte ganze Zahl) - es ist zu hoch. Die Android-Dokumentation für SYSTEM_HIGH_PRIORITY lautet 1000 (http://developer.android.com/reference/android/content/IntentFilter.html#SYSTEM_HIGH_PRIORITY) und die App-Prioritätsstufen sollten darunter liegen - es handelt sich nicht um eine System-App.
Dies wird zu unvorhersehbarem Verhalten führen. (GoSMS schließt nicht immer andere App-Benachrichtigungen ab - der abortBroadcast funktioniert nur, wenn er zuerst abgerufen wird, normalerweise basierend auf der Installationsreihenfolge, aber nicht immer.) Apps auf Systemebene werden ausgeführt, dann versucht Android, nicht systemspezifische Apps zu sortieren. Wenn Sie sich den Quellcode ansehen, richtet sich die Reihenfolge der Ausführung nach der Prioritätsebene, aber die Aufrufe zur Auswahl der Reihenfolge von Apps sind für Apps über 999 oder für Apps mit derselben Prioritätsstufe nicht konsistent. Es könnte in der Reihenfolge der Installation sein, aber Systemänderungen können zu anderen Ausführungsreihenfolgen führen (was ich oft beim Testen gesehen habe).
Das sollte wirklich von GoSMS (und vielen anderen Apps, die es falsch haben) behoben werden. Nur weil "Priorität" eine ganze Zahl ist, bedeutet dies nicht, dass der höchste Wert der Ganzzahl für die höchste Prioritätsebene gilt. (Genauso wie eine Web-URL eine Zeichenfolge ist, aber nicht alle Zeichenfolgenwerte gültig sind.) GoSMS sollte außerdem wissen, dass andere Anwendungen SMS-Nachrichten verarbeiten möchten, die für den Benutzer nicht sichtbar sind. Wenn sie es erfassen und dem Benutzer anzeigen, ist das sinnlos.
Ich denke, wir haben eine Lösung dafür gemacht und es hat funktioniert :) Wir starten den Broadcast Receiver über den Code
%Vor%Das hat funktioniert und wir haben den Job erledigt.
Laden Sie apktool herunter Ссылка
download Auto-Zeichen Erstellt von Dave Da illest 1 Ссылка
im Ordner haben apktool und NICEBUTWRONGLYWRITTEN.APK extrahiert Lauf cmd in cmd apktool d -d NICEBUTWRONGLYWRITTEN.APK modif1 warten Gehe in dir modif1 finde die erste sichtbare XML-Datei, finde in diesem Wert V = 2147483647 (Suche nach der Nummer 2147483647) ersetze es durch 1 Schließen Sie die Dateispeicherung. Lauf im cmd Fenster apktool b -d modif1 / nachrichtendienst.apk warte, bis der Build abgeschlossen ist
Nehmen Sie builded newsmsapp.apk in das Verzeichnis mit signapk, fügen Sie es dort ein Lauf cmd CD in Verzeichnis mit signapk Art: sign newsms.app.apk
installieren Sie auf Ihrem Telefon newsmsapp.apk
erledigt.
Go SMS Pro Priorität ist maximal 2147483647 (2 ^ 31-1). Sie können diesen Wert auch einstellen. Wenn die Prioritäten gleich sind, wird das Android-Betriebssystem die "ältere" App bereitstellen, die Sie zuerst installiert haben. Ich sage das aus meiner Erfahrung, dass ich Google nicht in dieser Sache sagen kann.
Tags und Links android sms broadcastreceiver