在4.1.2中为单个来电获取两次广播

时间:2013-10-05 13:39:14

标签: android android-intent android-broadcast

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

提前致谢。

1 个答案:

答案 0 :(得分:2)

我在Google Nexus 4(Android 4.2)上经历过双重播放。我一直在研究类似的解决方案(基于SharedPreferences),但很快就发现它不可靠,当然因为磁盘I / O使用速度慢。最后,我创建了Service,它是来自BroadcastReceiver的“filterning”回调。

// 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