我正在检测Android中的拨出电话,但我想知道何时接听电话。
我有一个android.intent.action.NEW_OUTGOING_CALL
接收器,它为我提供了用户拨打的电话号码。
我还使用了PhoneStateListener
来给我调用状态much like this tutorial
所以我使用了陈述的CALL_STATE_RINGING
,CALL_STATE_OFFHOOK
和CALL_STATE_IDLE
识别来电:首先我获得CALL_STATE_RINGING
,然后只有在电话被接听时 - 我得到CALL_STATE_OFFHOOK
我最终得到CALL_STATE_IDLE
。
但是在拨出电话时我总是得到CALL_STATE_OFFHOOK
,然后是CALL_STATE_IDLE
- 无论是否接听电话......
那我怎么知道是否/何时接听了拨出电话?
由于
答案 0 :(得分:1)
当我得到CALL_STATE_IDLE时 - 我反复安排一个500毫秒的计时器,并检查android.provider.CallLog.Calls.CONTENT_URI
我搜索从拨出的电话号码拨打的最后一个电话,一旦我找到它 - 我可以获得持续时间。
它通常需要大约300-700毫秒才能得到它,所以我有0.5-1秒的延迟......