2015-02-02 6 views
5

एंड्रॉइड किटकैट फोन स्टेटस रिसीवर तक ठीक काम करता है। एंड्रॉइड लॉलीपॉप फोन स्टेटस रिसीवर में कई प्रसारण भेजना। क्या एंड्रॉइड लॉलीपॉप में कोई चीज बदल गई है।एंड्रॉइड लॉलीपॉप टेलीफोन स्टेटस चेंज के लिए एकाधिक ब्रॉडकास्ट रिसीवर भेजता है

public class PhoneStateBroadcastReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
    String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE); 
    Log.d("PhoneState", state); 
    } 
} 
} 

    <receiver android:name="com.phonestate.PhoneStateBroadcastReceiver" > 
     <intent-filter> 
      <action android:name="android.intent.action.PHONE_STATE" /> 
     </intent-filter> 
    </receiver> 
+0

मैं देखा आशय बुलाया सदस्यता के साथ भेजा एक अतिरिक्त है, और 1 या 9223372036854775807. मेरा अनुमान है, एक बग है प्रतीत हो रहा है? – gerfmarquez

+0

संख्या लंबी है। MAX_VALUE। क्या आपको लगता है कि यह क्यों हो रहा है? – Muzikant

+0

मैंने इस समस्या के लिए एक बग रिपोर्ट पोस्ट की है: https://code.google.com/p/android/issues/detail?id=161508 – Muzikant

उत्तर

0

मैं इस समाधान की सिफारिश करेंगे:

public void onReceive(Context context, Intent intent) { 
    long subId = intent.getLongExtra("subscription", Long.MIN_VALUE); 
    if(subId < Integer.MAX_VALUE) { 
    // hurray, this is called only once on all operating system versions! 
    } 
} 

यह दोनों पर काम करता है एक 5.x 4.x और आगे की संगत होना चाहिए। अधिक जानकारी के लिए अपने ब्लॉग का संदर्भ लें:

http://www.skoumal.net/en/android-duplicated-phone-state-broadcast-on-lollipop/

संबंधित मुद्दे