I have a Broadcast Receiver in my app:
public class Ringmodechange extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
My AndroidManifest.xml:
<receiver
android:name=".Ringmodechange"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.media.RINGER_MODE_CHANGED" />
</intent-filter>
</receiver>
Is it possible to register and unregister a BroadcastReceiver with java code? This receiver is working in the background.
Actually, I want to register and unregister the receiver everytime a user clicks a button.
Yes, it is possible using a ComponentName and the PackageManager.
Enabling your BroadcastReceiver:
ComponentName component = new ComponentName(context, Ringmodechange.class)
context.getPackageManager().setComponentEnabledSetting(component, PackageManager. COMPONENT_ENABLED_STATE_ENABLED , PackageManager.DONT_KILL_APP);
To disable it:
ComponentName component = new ComponentName(context, Ringmodechange.class)
context.getPackageManager().setComponentEnabledSetting(component, PackageManager. COMPONENT_ENABLED_STATE_DISABLED , PackageManager.DONT_KILL_APP);