- Syntaxe :
<receiver android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:intentMatchingFlags=["none" | "enforceIntentFilter" | "allowNullAction"] android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </receiver>
- Contenu dans :
<application>- Peut contenir :
<intent-filter><meta-data><property>- Description :
- Déclare un broadcast receiver (une sous-classe
BroadcastReceiver) comme l'un des composants de l'application. Les broadcast receivers permettent aux applications de recevoir des intents diffusés par le système ou par d'autres applications, même lorsque les autres composants de l'application ne sont pas en cours d'exécution.Le broadcast receiver peut être connu du système de deux manières. La première consiste à le déclarer dans le fichier manifeste avec cet élément. L'autre consiste à créer le receiver dynamiquement dans le code et à l'enregistrer avec la méthode
Context.registerReceiver()ou l'une de ses versions surchargées.Pour en savoir plus sur la création dynamique de receivers, consultez la description de la classe
BroadcastReceiver.Si ce receiver gère des diffusions non système, spécifiez une valeur pour
android:exported. Définissez cette valeur sur"true"si vous souhaitez que votre receiver puisse recevoir des diffusions d'autres applications ou"false"si vous souhaitez qu'il ne puisse recevoir que des diffusions de votre propre application.Vous n'avez pas besoin de supprimer l'attribut
android:permissionsi vous l'avez déjà déclaré.Avertissement : Limitez le nombre de broadcast receivers que vous définissez dans votre application. Un nombre trop élevé de broadcast receivers peut affecter les performances de votre application et l'autonomie de la batterie des appareils des utilisateurs. Pour plus d'informations sur les API que vous pouvez utiliser à la place de la
BroadcastReceiverclasse pour planifier des tâches en arrière-plan, consultez Optimisation des processus en arrière-plan. - Attributs :
android:directBootAwareIndique si le broadcast receiver est compatible avec le démarrage direct, c'est-à-dire s'il peut être exécuté avant que l'utilisateur déverrouille l'appareil.
Remarque : Pendant le démarrage direct, un broadcast receiver de votre application ne peut accéder qu'aux données stockées dans l'espace de stockage protégé par l'appareil.
La valeur par défaut est
"false".android:enabled- Indique si le système peut instancier le broadcast receiver. Cette valeur indique
"true"si l'activité peut être instanciée, et"false"dans le cas contraire. La valeur par défaut est"true".L'élément
<application>possède son propreenabledattribut qui s'applique à tous les composants d'application, y compris les broadcast receivers. Les<application>et<receiver>attributs doivent tous les deux être"true"pour que le broadcast receiver puisse être activé. Si l'un d'eux indique"false", il est désactivé et ne peut pas être instancié. android:exported- Indique si le broadcast receiver peut recevoir des messages provenant de sources autres que le système en dehors de son application. Cette valeur indique
"true"si l'activité peut être instanciée, et"false"dans le cas contraire. Si la valeur est"false", les seuls messages que le broadcast receiver reçoit sont ceux envoyés par le système, les composants de la même application ou les applications ayant le même ID utilisateur.Si aucune valeur n'est spécifiée, la valeur par défaut varie selon que le broadcast receiver contient ou non des filtres d'intent. Si le receiver contient au moins un filtre d'intent, la valeur par défaut est
"true". Sinon, la valeur par défaut est"false".Cet attribut n'est pas le seul moyen de limiter l'exposition externe d'un broadcast receiver. Vous pouvez également utiliser une autorisation pour limiter les entités externes qui peuvent lui envoyer des messages. Consultez l'attribut
permission. android:icon- Icône représentant le broadcast receiver. Cet attribut est défini comme référence à une ressource drawable contenant la définition de l'image.
Si cette valeur n'est pas définie, l'icône spécifiée pour l'application dans son ensemble est utilisée à la place. Consultez l'attribut
iconde l'élément<application>.L'icône du broadcast receiver, définie ici ou par l'élément
<application>, est également l'icône par défaut de tous les filtres d'intent du receiver. Consultez l'<intent-filter>attribut de l'élémenticon. android:intentMatchingFlags-
Utilisez cet attribut pour affiner la façon dont le système met en correspondance les intents entrants avec les composants de l'application. Par défaut, aucune règle de correspondance spéciale n'est appliquée.
La valeur définie sur une balise
<receiver>remplace celle définie sur la balise<application>.La valeur doit correspondre à une ou plusieurs des options suivantes, séparées par le caractère "
|" :Option Description noneDésactive toutes les règles de correspondance spéciales pour les intents entrants. Lorsque vous spécifiez plusieurs options, les valeurs conflictuelles sont résolues en donnant la priorité à l'option noneflag.enforceIntentFilterApplique une correspondance plus stricte pour les intents entrants :
- Les intents explicites doivent correspondre au filtre d'intent du composant cible.
- Les intents sans action ne correspondent à aucun filtre d'intent.
allowNullActionAssouplit les règles de correspondance pour permettre aux intents sans action de correspondre. Cette option est utilisée conjointement avec
enforceIntentFilterpour obtenir le comportement suivant :- Les intents explicites doivent correspondre au filtre d'intent du composant cible.
- Les intents sans action sont autorisés à correspondre à n'importe quel filtre d'intent.
Pour en savoir plus, consultez la section Intents plus sécurisés dans les changements de comportement d'Android 16 (niveau d'API 36).
android:label- Libellé lisible pour le broadcast receiver. Si cet attribut n'est pas défini, le libellé défini pour l'application dans son ensemble est utilisé à la place. Consultez l'attribut
labelde l'élément<application>.Le libellé du broadcast receiver, défini ici ou par l'élément
<application>, est également le libellé par défaut de tous les filtres d'intent du receiver. Consultez l'attributlabelde l'élément<intent-filter>.Le libellé est défini comme une référence à une ressource de chaîne, de sorte qu'il puisse être localisé comme les autres chaînes de l'interface utilisateur. Toutefois, lorsque vous développez l'application, vous pouvez également le définir comme une chaîne brute.
android:name- Nom de la classe qui implémente le broadcast receiver, une sous-classe de
BroadcastReceiver. Il s'agit d'un nom de classe complet, tel que"com.example.project.ReportReceiver". Cependant, pour faire court, si le premier caractère du nom est un point (".ReportReceiver", par exemple), il est ajouté au nom du package spécifié dans l'élément<manifest>.Une fois l'application publiée, ne modifiez pas ce nom, sauf si vous définissez
android:exported="false".Il n'y a pas de valeur par défaut. Vous devez renseigner le nom.
android:permission- Nom d'une autorisation dont les diffuseurs ont besoin pour envoyer un message au broadcast receiver.
Si cet attribut n'est pas défini, l'autorisation définie par l'attribut
permissionde l'élément<application>s'applique au broadcast receiver. Si aucun attribut n'est défini, le receiver n'est pas protégé par une autorisation.Pour en savoir plus sur les autorisations, consultez la section Autorisations dans la présentation du fichier manifeste d'application et les conseils de sécurité.
android:processNom du processus dans lequel le broadcast receiver s'exécute. Normalement, tous les composants d'une application s'exécutent dans le processus par défaut créé pour celle-ci. Il porte le même nom que le package de l'application.
L'attribut
processde l'élément<application>peut définir une valeur par défaut différente pour tous les composants. Toutefois, chaque composant peut remplacer la valeur par défaut par son propre attributprocess, ce qui vous permet de répartir votre application sur plusieurs processus.Si le nom attribué à cet attribut commence par le caractère deux-points (
:), un nouveau processus privé, créé pour l'application, est créé lorsque cela est nécessaire et que le broadcast receiver est exécuté au cours de ce processus.Si le nom du processus commence par une lettre minuscule, le receiver sera exécuté dans un processus global du même nom, à condition qu'il soit autorisé à le faire. Cela permet aux composants de différentes applications de partager un processus, ce qui réduit l'utilisation des ressources.
- Première apparition :
- Niveau d'API 1
<destinataire>
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2026/07/03 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2026/07/03 (UTC)."],[],[]]