如何以编程方式回答Android 4.0.3中的呼叫?

one*_*nch 0 android runtime.exec adb broadcastreceiver

因此,作为主题,我需要能够在HTC OneX上以Android 4.0.3编程方式接听电话.我已经读过几个地方,MODIFY_PHONE_STATE谷歌已经撤销了这项权限,所以要完成这项任务,你需要一个解决方法.

到目前为止,我已经研究过两个途径:

(1)随着盖伊的帖子在这里使用一个BroadcastReceiver

(2)使用以下代码尝试通过shell命令触发键事件.

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();
    } 
Run Code Online (Sandbox Code Playgroud)

我使用这个是因为keyevent 5是根据谷歌的KeyEvent.CALL而且它在adb中使用

adb shell input keyevent 5
Run Code Online (Sandbox Code Playgroud)

我的问题是,我做错了什么?因为逻辑上这两种方法都有意义,但它们都不起作用,甚至不会产生任何类型的运行时错误.

干杯

one*_*nch 6

经过几天的研究,我发现使用广播接收器路由和runtime.exec()路由都无法使用Android API在Android 4.0.3中接听电话.

对于那些你仍然想知道的人,我确实找到了一些有用的信息...你可以通过adb使用命令接听电话adb shell input keyevent 55是呼叫按钮的关键代码,在Android中它是KEYEVENT_CALL