Wie Sie programmgesteuert einen Anruf in Android 4.0.3?
So, wie das Thema heißt ich muss in der Lage sein, einen Telefonanruf entgegenzunehmen, die programmgesteuert in Android 4.0.3 auf HTC OneX. Ich habe gelesen, mehrere Orte, die die MODIFY_PHONE_STATE
Genehmigung widerrufen wurde von Google so zu tun, diese Aufgabe müssen Sie eine Arbeit um.
Habe ich in zwei Wege so weit:
(1) Folgende Typen post hier und mit einem BroadcastReceiver
(2) Verwenden Sie den folgenden code, um zu versuchen und schlagen Sie eine Taste Ereignis durch einen shell-Befehl.
final Runtime r = Runtime.getRuntime();
try {
Process process = r.exec("input keyevent 5");
InputStream stream = process.getErrorStream();
log.v("Process Error Stream: " +stream.toString());
log.v("Sending shell command to Answer Call");
} catch (Exception e) {
log.v("Stack Trace: " + e.getStackTrace().toString());
e.printStackTrace();
}
Ich benutze diese, weil keyevent 5 ist KeyEvent.RUFEN Sie laut Google und der funktioniert adb mit
adb shell input keyevent 5
Meine Frage ist, was mache ich falsch? Weil logischerweise diese beiden Methoden macht Sinn, aber weder arbeiten oder sogar die Erstellung runtime Fehler jeglicher Art.
Cheers
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach Tagen der recherche fand ich, dass mit einem broadcast receiver Weg und ein
runtime.exec()
route ist es einfach nicht möglich zu beantworten, einen Anruf in Android 4.0.3 mit Hilfe der Android-API.Für diejenigen von Euch, die noch Fragen hatte, fand ich einige nützliche Informationen...KÖNNEN Sie einen Anruf annehmen, durch
adb
mit dem Befehladb shell input keyevent 5
5 ist der key-code für die Schaltfläche anrufen, und bei Android ist es dieKEYEVENT_CALL
input keyevent 5
mitadb shell input keyevent 5
?Diese funktioniert ab Android 2.2, 4.0 und jetzt, nach dem hinzufügen der try-catch-auf die Letzte Zeile funktioniert es für 4.1.2 und 4.2 Ehrlich gesagt nicht wissen, wie es funktioniert, aber es funktioniert für mich.
Dieser funktioniert bei mir unter Android 4.1.2 als auch die, die ich getestet habe auf 4.2
Das gibt noch eine Ausnahme, die behandelt wird.
Hier sind einige nützliche links, überprüfen Sie Sie: