Ich habe eine App, die USSD-Anrufe tätigt, aber nach allen USSD-Anrufen erhielt ich einen Dialog mit dem Ergebnis für den Benutzer.
Ich weiß, dass es möglich ist, diesen Dialog zu schließen, weil die "USSD Checker" -App dies tut, sie erhalten die Antwort von USSD, ohne den Benutzerdialog zu zeigen.
In der Klasse phone utils
Hat die Funktion displayMMIComplete
, die nach Abschluss des Ussd-Aufrufs ein TYPE_SYSTEM_DIALOG anzeigt. In der PhoneUtils.java verwenden sie den Dialog wie folgt:
Dann kann ich nicht einfach eine Flagge senden, um sie zu verwerfen. Und ich kann diesen Import nicht als Systemklasse verwenden.
Und wenn ich X aufeinanderfolgende Anrufe X erscheint X Dialoge zum Benutzer schließen, und meine App muss aufeinander folgende Aufrufe tun, gibt es trotzdem, um dieses System-Dialogfeld programmatisch zu schließen?
Ich habe eine Antwort auf meine Frage gefunden, wenn Sie versuchen, USSD Calls zu verwenden, können Sie den Ergebnistext deaktivieren
In einem russischen Blog gibt es einen Post , der zeigt, wie Sie sich dann mit dem phoneutils-Dienst von Android verbinden können Steuern Sie die Texte von USSD (CALL und RESULT). Er zeigt ein Beispiel mit einer Schnittstelle (IExtendendNetworkService), die nur auf dem Android OS-Start auf den Telefon-Utilities bindet, und wenn es keine andere App gibt, die versucht, das gleiche zu tun (Weil nur ein Dienst gebunden werden kann und vielleicht auch sein wird). Ich kenne die Regel nicht, die Android OS wählt).
In der Funktion "CharSequence getUserMessage (CharSequence text);" Wenn Sie null zurückgeben, wird das Ergebnis-Dialogfeld nicht angezeigt.
Ich habe eine einfache Antwort von diesem Blog hier gefunden. Zuerst müssen wir einen einfachen Accessibility Service erstellen. Der Accessibility Service funktioniert nur, wenn er aktiviert ist. Bei der Einstellung gibt es die Option Accessibility, in der das Projekt aktiviert und die Berechtigung für die Serviceklasse erteilt wird.
Hinweis: Die Methode performGlobalAction (GLOBAL_ACTION_BACK) erfordert Android 4.1+, wenn sie nicht verwendet wird, ist es möglich, die 4.0 zu erfüllen. Es schließt das Fenster unmittelbar nach dem AlertDialog,
hier der Beispielcode:
%Vor%Fügen Sie im Manifest die folgenden Dinge hinzu:
%Vor%