Android - 在Lollipop上以编程方式接听电话时延迟

时间:2015-10-11 22:08:43

标签: android android-5.0-lollipop phone-call android-5.1.1-lollipop incoming-call

我正在开发一款可以通过编程方式接听电话的应用。我已经阅读了很多相关内容,并尝试了许多方法来实现它。

在5.0及以上版本中唯一适用于我的解决方案如下 -

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

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

还有其他方法可以更快地运作吗?

谢谢

2 个答案:

答案 0 :(得分:0)

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

更快

[1] Need root to execute shell command "input keyevent <#>" through an app at runtime?

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

答案 1 :(得分:0)

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