【发布时间】:2015-03-19 12:09:39
【问题描述】:
我有一个通话录音应用,它可以对来自专用 BroadcastReceiver 的通话状态变化做出反应。
BroadcastReceiver 在我的清单中正确注册,以及PROCESS_OUTGOING_CALLS 和READ_PHONE_STATE 权限。
我的问题是,由于某种原因,在某些通话中,我在通话结束几分钟后收到了CALL_STATE_OFFHOOK 状态广播。
似乎广播以某种方式卡住了,然后在一段时间后触发。自 CALL_STATE_OFFHOOK 广播后大约 X 时间后收到“CALL_STATE_IDLE”后续广播,其中 X 是实际呼叫所用的时间。
我的日志验证之前的 onReceive 调用没有挂起进程或 BroadcastReceiver。
造成这种行为的原因是什么?
更新:
我发现这发生在我打开或关闭 Wi-Fi 并在相对接近 Wi-Fi 变化时开始通话后。
这是问题的原因还是实际问题的症状?
【问题讨论】:
标签: android broadcastreceiver telephonymanager android-context