4

我正在编写一个应用程序,它会自动接听电话。问题是,如果我已经在通话并且有人在响铃,它不应该接听。有没有办法做到这一点?

根据文档,如果我检查它的状态,TelephonyManager它将是CALL_STATE_RINGING而不是CALL_STATE_OFFTHEHOOK

我是否必须添加一个在不断变化的电话状态下设置为 true 的变量,以便我知道有一个正在进行的呼叫或者是否有更好的解决方案?

谢谢!

/edit:我在未经允许的情况下接听电话Modify_Phone_State,所以它只是为了找出是否已经有通话正在进行。

4

2 回答 2

1

好的,因为显然没有办法解决这个问题,所以一旦状态变为OFFTHEHOOK(真),我就在 SharedPreference 中存储了一个布尔值。

当状态变为 时IDLE,我将布尔值设置为 false。所以这意味着,如果RINGING在有人已经调用时触发,我读出变量为真,然后丢弃以下操作。

对于那些想要了解有关如何接听电话的更多信息的人,请查看AutoAnswer 项目

于 2011-11-23T18:28:55.897 回答
1

跟踪呼叫状态接缝是最好的方法,因为您的问题超出了 android 标准的轨道。

您的问题没有官方答案,因为:

通过 Android API,第三方应用程序提供商没有正式的方式来接听电话,因为
1:您必须使用未记录的 API。
2 : 请求 MODIFY_PHONE_STATE 权限仅适用于 2.3 以来的根/系统签名应用程序

因此,如果您的问题存在有效的(内置代码)工作答案,它可能正式不适用于每个制造商/型号的设备。

更多信息请参阅如何为 Gingerbread 上运行的应用授予 MODIFY_PHONE_STATE 权限

于 2011-11-22T19:39:02.693 回答