- Syntax:
<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>
- enthalten in:
<application>
- kann Folgendes enthalten:
<intent-filter>
<meta-data>
- description:
- Deklariert einen Übertragungsempfänger, einen
BroadcastReceiver
als eine der Anwendungskomponenten. Broadcast-Empfänger aktivieren um Intents zu empfangen, die vom System oder von anderen auch wenn andere Komponenten der Anwendung nicht ausgeführt werden.Es gibt zwei Möglichkeiten, dem System einen Übertragungsempfänger mitzuteilen. Erstens: in der Manifestdatei mit diesem Element deklarieren. Die andere besteht darin, des Empfängers dynamisch im Code schreiben und
Context.registerReceiver()
oder einer ihrer überlasteten Versionen.Weitere Informationen zum dynamischen Erstellen von Empfängern finden Sie in der
BroadcastReceiver
Klasse Beschreibung.Wenn dieser Empfänger Nicht-System-Broadcasts verarbeitet, gib einen Wert für
android:exported
an. Setze diesen Wert auf"true"
, wenn dein Empfänger von anderen Apps oder"false"
, wenn Sie nur Ihr Receiver soll Broadcasts von Ihrer eigenen App empfangen können.Sie müssen das Attribut
android:permission
nicht entfernen, wenn Sie bereits deklariert.Warnung:Begrenzen Sie die Anzahl der Übertragungen. Empfänger, die du in der App festgelegt hast. Zu viele Übertragungsempfänger können die Leistung Ihrer App und die Akkulaufzeit der Nutzer Geräte. Weitere Informationen zu APIs, die Sie anstelle der
BroadcastReceiver
-Klasse zum Planen von Hintergrundarbeiten, siehe Hintergrundoptimierung: - Attribute:
android:directBootAware
Ob der Übertragungsempfänger Direct-Boot-fähig ist, ob sie ausgeführt werden kann, bevor der Nutzer das Gerät entsperrt.
Hinweis : Während der Direct Boot, eine Übertragung in Ihrer Anwendung nur auf die Daten zugreifen kann, die in Gerätegeschützter Speicher.
Der Standardwert ist
"false"
.android:enabled
- Gibt an, ob der Übertragungsempfänger vom System instanziiert werden kann. Es ist
"true"
, wenn dies möglich ist, und"false"
, wenn nicht. Der Standardwert ist"true"
.Das
<application>
-Element hat eine eigene Attributenabled
, das für alle gilt Anwendungskomponenten, einschließlich Übertragungsempfängern Die<application>
und<receiver>
-Attribute müssen beide"true"
für den Übertragungsempfänger zu aktivieren. Wenn entweder"false"
, ist es deaktiviert und kann nicht instanziiert werden. android:exported
- Ob der Übertragungsempfänger Nachrichten von Quellen empfangen kann, die keine systemeigenen Quellen sind
außerhalb ihrer Anwendung. Es ist
"true"
, wenn dies möglich ist, und"false"
wenn nicht. Bei"false"
erhält der Übertragungsempfänger nur Nachrichten sind diejenigen, die vom System, von Komponenten derselben Anwendung oder von Anwendungen mit derselben User-ID.Wenn kein Wert angegeben ist, hängt der Standardwert davon ab, ob der Übertragungsempfänger einen Intent enthält Filter. Wenn der Empfänger mindestens einen Intent-Filter enthält, ist der Standardwert
"true"
Andernfalls ist der Standardwert"false"
.Dieses Attribut ist nicht die einzige Möglichkeit, die Schallbelastung eines Übertragungsempfängers zu begrenzen. Sie können eine Berechtigung auch verwenden, um die externen Entitäten einzuschränken, die ihr Nachrichten senden können. Siehe das Attribut
permission
. android:icon
- Ein Symbol, das den Übertragungsempfänger darstellt. Dieses Attribut ist festgelegt
als Referenz auf eine Drawable-Ressource, die die Bilddefinition enthält.
Wenn es nicht festgelegt ist, wird das für die gesamte Anwendung angegebene Symbol verwendet.
. Siehe
<application>
icon
-Attributs des Elements.Das Symbol des Übertragungsempfängers, entweder hier oder durch das
<application>
-Element, ist auch das Standardsymbol für alle Intent-Filter des Empfängers. Weitere Informationen finden Sie in der<intent-filter>
Elementicon
-Attribut. android:label
- Ein für den Broadcast-Empfänger lesbares Label. Wenn dieses Attribut nicht
ist das für die gesamte Anwendung festgelegte Label
verwendet werden. Weitere Informationen finden Sie in der
<application>
label
-Attribut.Das Label des Übertragungsempfängers, entweder hier oder vom
<application>
-Element, ist auch das Standardlabel für alle Intent-Filter des Empfängers. Weitere Informationen finden Sie in der<intent-filter>
Elementlabel
-Attribut.Das Label wird als Verweis auf eine Stringressource festgelegt, sodass kann er wie andere Zeichenfolgen in der Benutzeroberfläche lokalisiert werden. Der Einfachheit halber sollten Sie kann auch als Rohstring festgelegt werden.
android:name
- Der Name der Klasse, die den Übertragungsempfänger implementiert, eine abgeleitete Klasse von
BroadcastReceiver
. Dies ist ein voll qualifizierter Klassenname, z. B."com.example.project.ReportReceiver"
. Sie können jedoch kurz gesagt: Wenn das erste Zeichen des Namens ein Punkt ist, z. B.".ReportReceiver"
, wird er an den Paketnamen angehängt, der in<manifest>
-ElementNachdem Sie Ihre Anwendung veröffentlicht haben, sollten Sie nicht diesen Namen ändern, es sei denn, Sie legen
android:exported="false"
fest.Es gibt keine Standardeinstellung. Der Name muss angegeben werden.
android:permission
- Der Name der Berechtigung, die Sender benötigen, um eine
an den Übertragungsempfänger senden.
Wenn dieses Attribut nicht festgelegt ist, wird die vom
<application>
Element Attribut „permission
“ wird angewendet an den Übertragungsempfänger gesendet werden. Wenn keines der beiden Attribute festgelegt ist, ist nicht durch eine Berechtigung geschützt.Weitere Informationen zu Berechtigungen finden Sie in der Berechtigungen in der App-Manifestübersicht und Sicherheitstipps
android:process
- Der Name des Prozesses, in dem der Übertragungsempfänger ausgeführt wird.
Normalerweise werden alle Komponenten einer Anwendung im erstellten Standardprozess ausgeführt.
für die Anwendung. Es hat denselben Namen wie das Anwendungspaket.
Die
<application>
Element Für dasprocess
-Attribut für alle Komponenten. Jede Komponente kann jedoch den Standardwert mit einem eigenenprocess
-Attribut, sodass Sie Ihre in mehreren Prozessen anwenden können.Wenn der diesem Attribut zugewiesene Name mit einem Doppelpunkt (
:
) beginnt, wird ein neuer der auf die Anwendung beschränkt ist, erstellt wird, wenn er benötigt wird, und während der Übertragungsempfänger ausgeführt wird.Wenn der Prozessname mit einem Kleinbuchstaben beginnt, wird der Empfänger ausgeführt in einem globalen Prozess dieses Namens erfolgen, sofern er dazu berechtigt ist. So können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, Ressourcennutzung.
- eingeführt in:
- API-Level 1
<Empfänger>
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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"]]