Итак, как говорится в теме, мне нужно иметь возможность программно отвечать на телефонный звонок в Android 4.0.3 на HTC OneX. Я читал в нескольких местах, что разрешение MODIFY_PHONE_STATE
было отозвано Google, поэтому для выполнения этой задачи вам нужен обходной путь.
До сих пор я рассматривал два пути:
(1) После сообщения Гая здесь и используя BroadcastReceiver
(2) Используйте следующий код, чтобы попытаться нажать ключевое событие с помощью команды оболочки.
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();
}
Я использую это, потому что keyevent 5 - это KeyEvent.CALL в соответствии с Google, и он работает в adb, используя
adb shell input keyevent 5
У меня вопрос, что я делаю не так? Потому что логически оба эти метода имеют смысл, но ни один из них не работает и даже не генерирует какие-либо ошибки времени выполнения.
Ваше здоровье