Android 2.2+中的外出呼叫应答状态

时间:2012-12-19 09:02:39

标签: android

在我的应用程序中,我发起了一个拨出电话,我正在使用PhoneStateListener了解呼叫状态。

每当我开始拨打电话时,电话状态为TelephonyManager.CALL_STATE_OFFHOOK。当呼叫接收者接听电话时,我的电话状态没有任何变化。

我尝试了很多,但没有得到这个回答状态。有人告诉使用蓝牙的HFP(免提配置文件)来获得呼叫应答状态。但我没有从Android开发者网站获得有关HFP的任何信息。

如果有人遇到同样的问题并得到了解决方案,请提出宝贵的建议。

3 个答案:

答案 0 :(得分:1)

接收方应答呼叫时CALL_STATE_OFFHOOK不会改变:

  

设备呼叫状态:摘机。至少存在一个正在拨打有效或等待的通话,并且没有来电正在响铃或等待。

只要电话正在通话,状态就不应该改变,无论是否应答。

这个问题已被问过许多项目,到目前为止,我找到的所有项目都没有得到解决:Detect if an outgoing call has been answeredAndroid : How to get a state that the outgoing call has been answered?Android : How to get a state that the outgoing call has been answered?(还有很多其他项目)。那里提供的解决方案依赖于CALL_STATE_OFFHOOK状态来改变应答呼叫时,这种情况不会发生。

似乎没有可用于获取传出呼叫状态的公共API。我看到的最好的解决方法是Vivek Khandelwal所建议的,编码时间不长,性能开销也很大。除非添加太多权限(现在需要添加READ_CALL_LOGS),否则请使用它。

答案 1 :(得分:0)

我也有同样的问题。这可能不是您问题的答案。我只是分享我的所作所为。

我有一个活动可以打开联系人并可以拨打电话。我想要的是,知道呼叫是否成功(即接收者接听电话)。

我当时找不到使用PhoneStateListener的解决方案。

因此,作为一种解决方法,如果在启动联系活动后拨打该联系人的电话号码,我会检查呼叫记录。

看看他的帮助。

答案 2 :(得分:0)

你需要特定于蓝牙的东西吗?否则我可以提供消息来源