Android: ¿cómo anular el registro de un receptor creado en el manifiesto?

Sé sobre usar registerReceiver y unregisterReceiver en código Java para tratar con receptores, pero digamos que tengo lo siguiente en mi manifiesto:

     

¿Hay alguna manera de anular el registro en algún lugar del código Java? ¿Podría darle un atributo de identificación o algo así y luego obtenerlo y anular el registro? Lo pido porque quiero que mi aplicación haga algo solo la primera vez que ocurre esta acción, luego lo anulo y lo vuelvo a registrar más tarde en Java.

Espero haber dejado eso en claro, gracias por cualquier ayuda.

Puede usar el PackageManager de PackageManager para habilitar / deshabilitar un BroadcastReceiver declarado en el Manifiesto. El Broadcast Receiver activará solo cuando esté habilitado.

Use esto para crear un Componente

 ComponentName component = new ComponentName(context, MyReceiver.class); 

Compruebe si el Componente está habilitado o deshabilitado

 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"); } 

Habilitar / Deshabilitar el componente (Broadcast Receiver en su caso)

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

Basado en la respuesta de Varun, he creado este método utilitario

 private void unregisterReceiverFromManifest(Class< ? extends BroadcastReceiver> clazz, final Context context) { final ComponentName component = new ComponentName(context, clazz); final int status = context.getPackageManager().getComponentEnabledSetting(component); if(status == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) { context.getPackageManager() .setComponentEnabledSetting(component, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } }