我的应用程序需要以编程方式接听来电(这是一个允许通过办公室拨号的企业电话应用程序)。直到 Android 4.4,我都在使用Headset Hook 方法
不幸的是,在 5.0 和 6.0 中,这似乎不再起作用了。我尝试过使用 KeyEvent.ACTION_DOWN 和 ACTION_UP,无论是否有 android.permission.CALL_PRIVILEGED 权限。我还尝试将 KeyEvent.KeyCODE_HEADSETHOOK 换成 KeyEvent.KEYCODE_CALL 无济于事,以及触发耳机插头。在我的 Nexus 6P 上没有任何动作。发送“input keyevent 79”也不做任何事情。
作为一个企业电话应用程序,它需要在各种无根设备上运行,因此呼叫服务以及任何需要 android.permission.MODIFY_PHONE_STATE 的设备都无法使用。
我知道这是可能的,因为我的手机上有另一个电话应用程序可以做到这一点,而无需任何特殊权限。