我正在编写一个自动接听电话的应用程序。问题是,如果我已经在通话中并且某人正在响铃,则不应该回答一个问题。 有没有办法实现这一目标?
根据该文档,如果我使用TelephonyManager
检查状态,则会CALL_STATE_RINGING
而不是CALL_STATE_OFFTHEHOOK
。
我是否必须添加一个在更改电话状态时设置为true的变量,以便我知道正在进行通话或是否有更好的解决方案?
谢谢!
/ edit:我在未经许可Modify_Phone_State
的情况下接听电话,因此只是发现是否有呼叫正在进行中。
答案 0 :(得分:1)
跟踪呼叫状态接缝的最佳方式,因为您的问题不符合Android标准。
您的问题没有正式答案,因为:
通过Android API,第三方应用程序提供商没有正式的方式接听电话,因为
1:你要使用未记录的API
2:请求MODIFY_PHONE_STATE权限仅适用于root用户/系统签名的应用程序,因为2.3
因此,如果您的问题存在高效(内置代码)工作答案,则可能正式不适用于每个制造商/型号设备。
How to grant MODIFY_PHONE_STATE permission for apps ran on Gingerbread
的更多信息答案 1 :(得分:1)
好的,因为显然没有办法解决这个问题,所以只要状态转到OFFTHEHOOK
(true),我就会在SharedPreference中存储一个布尔值。
当状态变为IDLE
时,我将布尔值设置为false。所以这意味着,如果在某人已经调用时触发了RINGING
,我会读出该变量为真,然后放弃以下操作。
如果您想了解有关如何接听电话的更多信息,请查看AutoAnswer Project