安卓自动应答电话 >=23 级 API



我试过很多自动接听来电的方法。

1)尝试使用私有API的(结束呼叫是工作的,接听呼叫不)

2)使用SendOrderedBroadcast和本文中提到的各种其他方法如何在Android 5.0(棒棒糖)中以编程方式接听来电?

如果我使用私有api,它会抛出SecurityException(请求MODIFY_DEVICE_STATE权限),如果我在上面的帖子中使用方法,它会显示以下警告

"由于没有窗口焦点而取消事件:KeyEvent {action=ACTION_UP, keyCode=KEYCODE_HEADSETHOOK, scanCode=0, metaState=0, flags=0x20, repeatCount=0, eventTime=7550277, downTime=7550277, deviceId=-1, source=0x101}"

请帮助我,如果有任何解决这个问题的方法,我使用Android版本23。

Thanks in advance.

我通过在TelephonyManager中使用AnswerRingingCall函数解决了这个问题,这将由电话状态侦听器(TelephonyManager. call_state_ringing)触发,当您使用此方法时,它实际上会抛出一个安全异常(请求MODIFY_STATE许可),但这将通过将apk推到/system/priv_app

来绕过root设备

要接听来电,还需要做一些额外的工作。

1)您需要访问"DRAW OVER OTHER APPS",即屏幕覆盖权限,这也将包括android.permission。SYSTEM_ALERT_WINDOW权限

2)你需要实现一个Broadcast Receiver来检查入局呼叫。

3)当检测到CALL_STATE_RINGING时,使用WindowsManager启动一个新的活动来绘制其他应用程序。此外,在此活动中设置唤醒锁,使手机在锁屏模式下处于唤醒状态。

4)也使用这个活动使用应答呼叫方法,这将工作,因为现在你的应用程序是在顶部和前景。

5)杀死这个活动,如果需要的话,从这个活动打开你的项目,然后杀死这个活动。

新的解决方案在这里,看看这个问题:

编程接受牛轧糖调用

最新更新