5

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

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

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

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

4

3 回答 3

1

接听者CALL_STATE_OFFHOOK接听电话时 不会改变:

设备通话状态:摘机。至少存在一个正在拨号激活或保持的呼叫,并且没有呼叫在振铃或等待。

只要电话处于通话状态,无论是否接听,状态都不应改变。

这个问题被问了很多项,到目前为止我发现的问题都没有得到解决:检测是否已接听电话Android:如何获得已接听电话的状态?, Android : 如何获得拨出电话已被接听的状态?(还有很多其他的)。那里提供的解决方案依赖于在CALL_STATE_OFFHOOK呼叫被应答时改变状态,这不会发生。

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

于 2012-12-19T09:37:41.030 回答
0

你想要一些特定于蓝牙的东西吗?否则我可以提供来源

于 2012-12-19T09:25:46.227 回答
0

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

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

当时我没有用 PhoneStateListener 找到解决方案。

因此,作为一种解决方法,我所做的是检查呼叫日志,如果它在启动联系人活动后有对该联系人的电话号码的拨出电话。

看看他的帮助。

于 2012-12-19T09:24:19.430 回答