1

我正在开发一个可以以编程方式接听电话的应用程序。我已经阅读了很多关于它的内容,并尝试了许多方法来让它工作。

在 5.0 及更高版本中对我有用的唯一真正解决方案如下 -

Runtime.getRuntime().exec("input keyevent " + Integer.toString(KeyEvent.KEYCODE_HEADSETHOOK));

虽然这种方法有效,但实际应答时间会延迟 1.5 到 5 秒。这种延迟是一个真正的交易破坏者,因为我的应用程序需要拦截所有来电,我不能让它延迟应答过程。

还有其他更快的方法吗?

谢谢

4

2 回答 2

0

根据您的情况,如果只有 root 方法适用于您,一种方法是使用后台服务保持 root shell 打开,并在需要时通过管道输入 keyevent 命令。这将节省每次调用进入时进程和 shell 的启动时间。您可以使用RootShell等库轻松完成此操作。

于 2015-12-17T15:16:56.430 回答
0

根据另一个答案[1],这取决于使用的超级用户客户端。Chainfire's SuperSU[2] 据说比Superuser

[1]需要root在运行时通过应用程序执行shell命令“input keyevent <#>”?

[2] https://play.google.com/store/apps/details?id=eu.chainfire.supersu

于 2015-10-11T22:24:41.153 回答