编程语言
首页 > 编程语言> > 如何以编程方式在Android 4.0.3中接听电话?

如何以编程方式在Android 4.0.3中接听电话?

作者:互联网

因此,正如受试者所说,我需要能够在HTC OneX上的Android 4.0.3中以编程方式接听电话.我已经读过几个地方,MODIFY_PHONE_STATE权限已被Google吊销,因此要执行此任务,您需要解决.

到目前为止,我已经研究了两种方法:

(1)按照Guy的帖子here并使用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();
    } 

我用这个是因为keyevent 5是Google所说的KeyEvent.CALL,它可以在adb中使用

adb shell input keyevent 5

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

干杯

解决方法:

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

对于仍然想知道的人,我确实找到了一些有用的信息…您可以使用adb shell输入命令通过adb应答呼叫ab shell输入keyevent 5 5是呼叫按钮的键代码,而在Android中是KEYEVENT_CALL

标签:runtime-exec,android,adb,broadcastreceiver
来源: https://codeday.me/bug/20191010/1885813.html