【问题标题】:outgoing call answered in PhoneStateListener在 PhoneStateListener 中应答的拨出电话
【发布时间】:2014-02-17 11:12:36
【问题描述】:

我在 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- 无论电话是否被接听...

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

谢谢

【问题讨论】:

  • 不能将振铃状态转为拨出电话。拨出电话时直接调用摘机状态
  • 是的,我想通了。但也许还有另一种方法?一些意图捕捉?我还尝试查看通话记录(android.provider.CallLog.Calls.CONTENT_URI),但它似乎在我获得 CALL_STATE_IDLE 后的某个时间更新......

标签: android telephonymanager phone-state-listener


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多