You can use the PackageManager
to enable/disable a BroadcastReceiver
in declared in the Manifest. The Broadcast Receiver
will get fired only when it is enabled.
Use this to create a Component
ComponentName component = new ComponentName(context, MyReceiver.class);
Check if the Component is enabled or disabled
int status = context.getPackageManager().getComponentEnabledSetting(component);
if(status == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {
Log.d("receiver is enabled");
} else if(status == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
Log.d("receiver is disabled");
}
Enable/Disable the component(Broadcast Receiver in your case)
//Disable
context.getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);
//Enable
context.getPackageManager().setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_ENABLED , PackageManager.DONT_KILL_APP);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…