1

我在 android 4.1.2 中的一次通话中收到了两次 EXTRA_STATE_RINGING 广播。对于低于此的版本,它工作正常。我尝试过使用 abortBroadcast 和 unRegisterBroadcast() 但在 4.1.2 版中没有任何效果。我已经搜索了其他类似的问题并尝试了所有但没有得到任何解决方案。

提前致谢。

4

1 回答 1

2

我在 Google Nexus 4 (Android 4.2) 上体验过双播。我一直在研究一个类似的解决方案(基于SharedPreferences),但很快发现它并不可靠,而且由于磁盘 I/O 的使用而速度很慢。最后,我创建了Service来自 BroadcastReceiver 的“过滤”回调。

// Service

boolean callInProgress;

// listener callbacks
public void onPhoneStateChange(boolean state) {

if (state)  {
        if (!callInProgress)    {

            // do something when the first broadcast arrives.
        callInProgress = true;  
     } 
} else  {
        callInProgress = false;
        // called when the call ends.
    }

}

// Service 
于 2013-10-05T16:47:32.700 回答