Android - comment annuler l'inscription d'un récepteur créé dans le manifeste?
Je sais à propos de l'utilisation registerReceiver et unregisterReceiver dans du code Java pour traiter les récepteurs, mais disons que j'ai de la suite dans mon manifeste:
<receiver android:name=".headsetHook">
<intent-filter android:priority="99999999999">
<action android:name="android.intent.action.ACTION_HEADSET_PLUG" />
</intent-filter>
</receiver>
Est-il un moyen que je pouvais annuler l'inscription de ce quelque part dans le code Java? Pourrais-je lui donner un attribut id ou quelque chose et puis l'obtenir et il désinscription? Je demande parce que je veux que mon application pour faire quelque chose uniquement sur le premier temps de cette action est le cas, alors il désinscription et enregistrez-le à nouveau plus tard dans Java.
Espère que j'ai bien expliqué, merci pour toute aide.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
PackageManager
pour activer/désactiver unBroadcastReceiver
déclarée dans le Manifeste. LeBroadcast Receiver
va être licencié que lorsqu'il est activé.L'utiliser pour créer un Composant
Vérifier si le Composant est activé ou désactivé
Activer/Désactiver le composant(Récepteur de Radiodiffusion dans votre cas)
enabled=false
dans votre manifeste,COMPONENT_ENABLED_STATE_DEFAULT
sera égal àCOMPONENT_ENABLED_STATE_DISABLED
. Ne l'ai pas essayé mais.Basé sur Varun la réponse que j'ai créé ce utilitariste de la méthode