3

在我的应用程序开发中,我需要在拨出电话连接时做振动,但我无法获得电话应答状态。我已阅读有关此问题的一些主题,例如: 拨出电话状态

但实际上,这些问题并没有得到正确的回答。使用 BroadcastReceiver 只能接收空闲、摘机、振铃状态,而不能接收活动状态。

在内部框架的 Call.java 中定义的活动状态,我不知道如何获得这个状态。我确实使用了反射方法,几乎​​与https://stackoverflow.com/questions/5652660/accessing-callmanager-in-android相同,但也失败了。

4

2 回答 2

0

我从未尝试过拨出电话,但在拨入电话时,您可以使用您提到的三种状态。

  1. STATE_RINGING:呼叫正在响铃。
  2. STATE_OFF_HOOK:如果之前的状态是 RINGING,则呼叫已连接。
  3. STATE_IDLE:如果上一个状态是 RINGING:呼叫被拒绝。如果上一个状态是 OFF_HOOK 呼叫连接然后断开连接(即完成)。

我有这个实现来电的代码。既然您提到您也可以在拨出电话中访问这些状态,我认为这也适用于拨出电话。如果你愿意,我可以发布我的代码。

于 2012-06-14T12:24:19.040 回答
-1

在网上思考并花了很多时间之后,我找到了实现这一目标的方法......

只需根据您上次拨打电话的时间查询设备的通话记录,获取该通话的持续时间,如果发现大于 0,则表示您的通话已被接受并且工作正常。

如果有人无法得到它,让我知道我会用代码详细说明它。

于 2013-01-14T11:34:19.053 回答