- Syntaxe :
<receiver android:directBootAware=["true" | "false"] android:enabled=["true" | "false"] android:exported=["true" | "false"] android:icon="drawable resource" android:label="string resource" android:name="string" android:permission="string" android:process="string" > ... </receiver>
- Contenu dans :
<application>
- Peut contenir :
<intent-filter>
<meta-data>
- Description :
- Déclare un broadcast receiver, un
BroadcastReceiver
comme l'un des composants de l'application. Activation par les broadcast receivers 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.Il existe deux façons de faire connaître un broadcast receiver au système. La première consiste à le déclarer dans le fichier manifeste avec cet élément. L'autre consiste à créer le récepteur de manière dynamique dans le code et de l'enregistrer
Context.registerReceiver()
ou l'une de ses versions surchargées.Pour en savoir plus sur la création dynamique de récepteurs, consultez la Classe
BroadcastReceiver
la description.Si ce récepteur gère des annonces non système, spécifiez une valeur pour
android:exported
. Définissez cette valeur sur"true"
si vous souhaitez que votre récepteur puisse du récepteur de contenu depuis d'autres applications ou"false"
si vous ne que votre récepteur puisse recevoir des diffusions de votre propre application.Vous n'avez pas besoin de supprimer l'attribut
android:permission
si vous l'a déjà déclarée.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 en savoir plus sur les API que vous pouvez utiliser à la place
BroadcastReceiver
pour planifier des tâches en arrière-plan, voir Optimisation de l'arrière-plan. - Attributs :
android:directBootAware
Que le broadcast receiver soit compatible avec le démarrage direct ? est de savoir si elle peut s’exécuter 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 broadcast receiver peut être instancié par le système. 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 propre attributenabled
qui s'applique à tous les composants d'application, y compris les broadcast receivers. La<application>
et Les attributs<receiver>
doivent tous les deux être"true"
pour le broadcast receiver à être activé. Si l'une des valeurs est"false"
, la valeur désactivé et ne peut pas être instancié. android:exported
- Indique si le broadcast receiver peut recevoir des messages provenant de sources hors système
en dehors de son application.
"true"
si c'est possible, et"false"
si ce n'est pas le cas. Si la valeur est"false"
, les seuls messages envoyés au broadcast receiver reçues sont celles envoyées par le système, les composants de la même application ou avec 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 récepteur 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 pouvant lui envoyer des messages. Consultez l'attribut
permission
. android:icon
- Icône représentant le broadcast receiver. Cet attribut est défini
en tant que référence à une ressource drawable contenant la définition de l'image ;
Si elle 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
icon
de l'élément<application>
.Icône du broadcast receiver, définie ici ou par
<application>
est également l'élément icône par défaut pour tous les filtres d'intent du récepteur. Consultez le<intent-filter>
élémenticon
. android:label
- Libellé lisible pour le broadcast receiver. Si cet attribut n'est pas
l'étiquette définie pour l'application dans son ensemble est
utilisé à la place. Consultez l'attribut
label
de l'élément<application>
.Libellé du broadcast receiver, défini ici ou par le
<application>
est également l'élément étiquette par défaut pour tous les filtres d'intent du récepteur. Consultez le<intent-filter>
élémentlabel
.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, par exemple"com.example.project.ReportReceiver"
. Toutefois, pour faire court : si le premier caractère du nom est un point, par exemple,".ReportReceiver"
, 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 une
au broadcast receiver.
Si cet attribut n'est pas défini, l'autorisation définie par
<application>
élément L'attributpermission
s'applique au broadcast receiver. Si aucun attribut n'est défini, le récepteur 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:process
- Nom 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.
La
<application>
élément L'attributprocess
peut définir une valeur différente par défaut pour tous les composants. Mais chaque composant peut remplacer la valeur par défaut avec son propre attributprocess
, ce qui vous permet dans plusieurs processus.Si le nom attribué à cet attribut commence par le signe deux-points (
:
), un nouveau privé à l'application, est créé en cas de besoin, et le broadcast receiver s'exécute dans ce processus.Si le nom du processus commence par une lettre minuscule, le récepteur exécute 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 2025/07/27 (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 2025/07/27 (UTC)."],[],[],null,["# <receiver\u003e\n\nsyntax:\n:\n\n ```xml\n \u003creceiver android:directBootAware=[\"true\" | \"false\"]\n android:enabled=[\"true\" | \"false\"]\n android:exported=[\"true\" | \"false\"]\n android:icon=\"drawable resource\"\n android:label=\"string resource\"\n android:name=\"string\"\n android:permission=\"string\"\n android:process=\"string\" \u003e\n ...\n \u003c/receiver\u003e\n ```\n\ncontained in:\n: [\u003capplication\u003e](/guide/topics/manifest/application-element)\n\ncan contain:\n: [\u003cintent-filter\u003e](/guide/topics/manifest/intent-filter-element)\n\n [\u003cmeta-data\u003e](/guide/topics/manifest/meta-data-element)\n\ndescription:\n: Declares a broadcast receiver, a [BroadcastReceiver](/reference/android/content/BroadcastReceiver)\n subclass, as one of the application's components. Broadcast receivers enable\n applications to receive intents that are broadcast by the system or by other\n applications, even when other components of the application aren't running.\n\n\n There are two ways to make a broadcast receiver known to the system. One is to\n declare it in the manifest file with this element. The other is to create\n the receiver dynamically in code and register it with the\n [Context.registerReceiver()](/reference/android/content/Context#registerReceiver(android.content.BroadcastReceiver,%20android.content.IntentFilter))\n method or one of its overloaded versions.\n\n\n For more information about how to dynamically create receivers, see the\n [BroadcastReceiver](/reference/android/content/BroadcastReceiver) class\n description.\n\n\n If this receiver handles non-system broadcasts, specify a value for `android:exported`.\n Set this value to `\"true\"` if you want your receiver to be able to\n receiver broadcasts from other applications or `\"false\"` if you only\n want your receiver to be able to receive broadcasts from your own app.\n\n\n You don't have to remove the `android:permission` attribute if you\n already declared it.\n\n\n **Warning:** Limit how many broadcast\n receivers you set in your app. Having too many broadcast receivers can\n affect your app's performance and the battery life of users' devices.\n For more information about APIs you can use instead of the\n `BroadcastReceiver` class for scheduling background work, see\n [Background optimization](/topic/performance/background-optimization).\n\nattributes:\n:\n\n `android:directBootAware`\n\n : Whether the broadcast receiver is *Direct-Boot aware*, that\n is, whether it can run before the user unlocks the device.\n\n **Note:** During\n [Direct Boot](/training/articles/direct-boot), a broadcast\n receiver in your application can only access the data that is stored in\n *device protected* storage.\n\n The default value is `\"false\"`.\n\n `android:enabled`\n : Whether the broadcast receiver can be instantiated by the system. It's\n `\"true\"` if it can be, and `\"false\"` if not. The default value\n is `\"true\"`.\n\n\n The [\u003capplication\u003e](/guide/topics/manifest/application-element) element has its own\n [enabled](/guide/topics/manifest/application-element#enabled) attribute that applies to all\n application components, including broadcast receivers. The\n `\u003capplication\u003e` and\n `\u003creceiver\u003e` attributes must both be `\"true\"` for\n the broadcast receiver to be enabled. If either is `\"false\"`, it's\n disabled and can't be instantiated.\n\n `android:exported`\n : Whether the broadcast receiver can receive messages from non-system sources\n outside its application. It's `\"true\"` if it can, and `\"false\"`\n if not. If `\"false\"`, the only messages the broadcast receiver\n receives are those sent by the system, components of the same application, or applications\n with the same user ID.\n\n\n If unspecified, the default value depends on whether the broadcast receiver contains intent\n filters. If the receiver contains at least one intent filter, then the default value is\n `\"true\"`. Otherwise, the default value is `\"false\"`.\n\n\n This attribute is not the only way to limit a broadcast receiver's external exposure.\n You can also use a permission to limit the external entities that can send it messages.\n See the [permission](/guide/topics/manifest/receiver-element#prmsn) attribute.\n\n `android:icon`\n : An icon representing the broadcast receiver. This attribute is set\n as a reference to a drawable resource containing the image definition.\n If it isn't set, the icon specified for the application as a whole is used\n instead. See the [\u003capplication\u003e](/guide/topics/manifest/application-element)\n element's [icon](/guide/topics/manifest/application-element#icon) attribute.\n\n\n The broadcast receiver's icon, whether set here or by the\n `\u003capplication\u003e` element, is also the\n default icon for all the receiver's intent filters. See the\n [\u003cintent-filter\u003e](/guide/topics/manifest/intent-filter-element) element's\n [icon](/guide/topics/manifest/intent-filter-element#icon) attribute.\n\n `android:label`\n : A user-readable label for the broadcast receiver. If this attribute isn't\n set, the label set for the application as a whole is\n used instead. See the [\u003capplication\u003e](/guide/topics/manifest/application-element) element's\n [label](/guide/topics/manifest/application-element#label) attribute.\n\n\n The broadcast receiver's label, whether set here or by the\n `\u003capplication\u003e` element, is also the\n default label for all the receiver's intent filters. See the\n [\u003cintent-filter\u003e](/guide/topics/manifest/intent-filter-element) element's\n [label](/guide/topics/manifest/intent-filter-element#label) attribute.\n\n\n The label is set as a reference to a string resource, so that\n it can be localized like other strings in the user interface.\n However, as a convenience while you're developing the application,\n it can also be set as a raw string.\n\n `android:name`\n : The name of the class that implements the broadcast receiver, a subclass of\n [BroadcastReceiver](/reference/android/content/BroadcastReceiver). This is a fully qualified\n class name, such as `\"com.example.project.ReportReceiver\"`. However,\n as a shorthand, if the first character of the name is a period, for example,\n `\".ReportReceiver\"`, it is appended to the package name specified in\n the [\u003cmanifest\u003e](/guide/topics/manifest/manifest-element) element.\n\n Once you publish your application, [don't\n change this name](http://android-developers.blogspot.com/2011/06/things-that-cannot-change.html), unless you set [android:exported](#exported)`=\"false\"`.\n\n\n There is no default. The name must be specified.\n\n `android:permission`\n : The name of a permission that broadcasters need in order to send a\n message to the broadcast receiver.\n If this attribute isn't set, the permission set by the\n [\u003capplication\u003e](/guide/topics/manifest/application-element) element's\n [permission](/guide/topics/manifest/application-element#prmsn) attribute applies\n to the broadcast receiver. If neither attribute is set, the receiver\n isn't protected by a permission.\n\n\n For more information about permissions, see the\n [Permissions](/guide/topics/manifest/manifest-intro#perms)\n section in the app manifest overview and\n [Security tips](/guide/topics/security/security).\n\n `android:process`\n\n : The name of the process in which the broadcast receiver runs. Normally, all components of an application run in the default process created for the application. It has the same name as the application package.\u003cbr /\u003e\n\n The\n [\u003capplication\u003e](/guide/topics/manifest/application-element) element's\n [process](/guide/topics/manifest/application-element#proc) attribute can set a different\n default for all components. But each component can override the default\n with its own `process` attribute, letting you spread your\n application across multiple processes.\n\n\n If the name assigned to this attribute begins with a colon (`:`), a new\n process, private to the application, is created when it's needed, and\n the broadcast receiver runs in that process.\n\n\n If the process name begins with a lowercase character, the receiver runs\n in a global process of that name, provided that it has permission to do so.\n This lets components in different applications share a process, reducing\n resource usage.\n\nintroduced in:\n: API level 1"]]