Up to android kitkat phone state broadcast receiver works fine. In android lolipop phone state broadcast receiver sending multiple broadcast. Is there any thing changed in Android Lolipop.
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>
I would recommend this solution:
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!
}
}
it works on both 4.x a 5.x and should be forward-compatible. For more details please refer to my blog:
http://www.skoumal.net/en/android-duplicated-phone-state-broadcast-on-lollipop/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With