Jak programowo odebrać połączenie w systemie Android 4.0.3?
Tak jak wymaga tego temat, muszę być w stanie programowo odbierać połączenia telefoniczne w systemie Android 4.0.3 w telefonie HTC OneX. Przeczytałem kilka miejsc, któreMODIFY_PHONE_STATE
zezwolenie zostało cofnięte przez Google, więc aby wykonać to zadanie, potrzebujesz obejścia.
Dotychczas przeanalizowałem dwie możliwości:
(1) Śledzenie postu Guy'atutaj i za pomocą odbiornika BroadcastReceiver
(2) Użycie poniższego kodu do próby uderzenia w zdarzenie klucza za pomocą polecenia powłoki.
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();
}
Używam tego, ponieważ keyevent 5 to KeyEvent.CALL według Google i działa w adb przy użyciu
adb shell input keyevent 5
Moje pytanie brzmi: co robię źle? Ponieważ logicznie obie te metody mają sens, ale ani nie działają, ani nawet nie generują błędów w czasie wykonywania.
Twoje zdrowie