拨出电话在PhoneStateListener中应答

时间:2014-02-17 11:12:36

标签: android telephonymanager phone-state-listener

我正在检测Android中的拨出电话,但我想知道何时接听电话。

我有一个android.intent.action.NEW_OUTGOING_CALL接收器,它为我提供了用户拨打的电话号码。

我还使用了PhoneStateListener来给我调用状态much like this tutorial 所以我使用了陈述的CALL_STATE_RINGINGCALL_STATE_OFFHOOKCALL_STATE_IDLE

识别来电:首先我获得CALL_STATE_RINGING,然后只有在电话被接听时 - 我得到CALL_STATE_OFFHOOK我最终得到CALL_STATE_IDLE

但是在拨出电话时我总是得到CALL_STATE_OFFHOOK,然后是CALL_STATE_IDLE - 无论是否接听电话......

那我怎么知道是否/何时接听了拨出电话?

由于

1 个答案:

答案 0 :(得分:1)

好吧,我设法找到了某种解决方案:

当我得到CALL_STATE_IDLE时 - 我反复安排一个500毫秒的计时器,并检查android.provider.CallLog.Calls.CONTENT_URI

我搜索从拨出的电话号码拨打的最后一个电话,一旦我找到它 - 我可以获得持续时间。

它通常需要大约300-700毫秒才能得到它,所以我有0.5-1秒的延迟......