- Syntax:
<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>
- Enthalten in:
<application>- kann Folgendes enthalten:
<intent-filter><meta-data><property>- Beschreibung:
- : Deklariert einen Broadcast-Empfänger, eine
BroadcastReceiver-Unterklasse, als eine der Komponenten der Anwendung. Mit Broadcast-Empfängern können Anwendungen Intents empfangen, die vom System oder von anderen Anwendungen übertragen werden, auch wenn andere Komponenten der Anwendung nicht ausgeführt werden.Es gibt zwei Möglichkeiten, einen Übertragungsempfänger dem System bekannt zu machen. Eine Möglichkeit besteht darin, sie mit diesem Element in der Manifestdatei zu deklarieren. Die andere Möglichkeit besteht darin, den Receiver dynamisch im Code zu erstellen und mit der Methode
Context.registerReceiver()oder einer ihrer überladenen Versionen zu registrieren.Weitere Informationen zum dynamischen Erstellen von Empfängern finden Sie in der Beschreibung der Klasse
BroadcastReceiver.Wenn dieser Receiver Broadcasts verarbeitet, die nicht vom System stammen, geben Sie einen Wert für
android:exportedan. Legen Sie diesen Wert auf"true"fest, wenn Ihr Receiver Broadcasts von anderen Anwendungen empfangen können soll, oder auf"false", wenn Ihr Receiver nur Broadcasts von Ihrer eigenen App empfangen können soll.Sie müssen das Attribut
android:permissionnicht entfernen, wenn Sie es bereits deklariert haben.Warnung:Beschränken Sie die Anzahl der Broadcast-Empfänger in Ihrer App. Zu viele Broadcast-Empfänger können sich auf die Leistung Ihrer App und die Akkulaufzeit der Geräte der Nutzer auswirken. Weitere Informationen zu APIs, die Sie anstelle der Klasse
BroadcastReceiverzum Planen von Hintergrundaufgaben verwenden können, finden Sie unter Hintergrundoptimierung. - Attribute:
android:directBootAwareGibt an, ob der Übertragungsempfänger Direct-Boot-fähig ist, d. h., ob er ausgeführt werden kann, bevor der Nutzer das Gerät entsperrt.
Hinweis : Während des Direktstarts kann ein Broadcast-Empfänger in Ihrer Anwendung nur auf die Daten zugreifen, die im geräteschutzgesicherten Speicher gespeichert sind.
Der Standardwert ist
"false".android:enabled- Gibt an, ob der Übertragungsempfänger vom System instanziiert werden kann.
"true", wenn das möglich ist, und"false", wenn nicht. Der Standardwert ist"true".Das
<application>-Element hat ein eigenesenabled-Attribut, das für alle Anwendungskomponenten gilt, einschließlich Broadcast-Empfängern. Die Attribute<application>und<receiver>müssen beide"true"sein, damit der Übertragungsempfänger aktiviert wird. Wenn einer der beiden Werte"false"ist, ist er deaktiviert und kann nicht instanziiert werden. android:exported- Gibt an, ob der Übertragungsempfänger Nachrichten von Nicht-Systemquellen außerhalb seiner Anwendung empfangen kann.
"true", wenn das möglich ist, und"false", wenn nicht. Wenn"false", empfängt der Übertragungsempfänger nur Nachrichten, die vom System, von Komponenten derselben Anwendung oder von Anwendungen mit derselben Nutzer-ID gesendet werden.Wenn nichts angegeben ist, hängt der Standardwert davon ab, ob der Übertragungsempfänger Intent-Filter enthält. 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 externe Sichtbarkeit eines Broadcast-Empfängers einzuschränken. Sie können auch eine Berechtigung verwenden, um die externen Einheiten zu begrenzen, die Nachrichten senden können. Weitere Informationen finden Sie unter dem Attribut
permission. android:icon- Ein Symbol für den Übertragungsempfänger. Dieses Attribut wird als Verweis auf eine zeichenfähige Ressource festgelegt, die die Bilddefinition enthält.
Wenn es nicht festgelegt ist, wird stattdessen das für die Anwendung als Ganzes angegebene Symbol verwendet. Weitere Informationen finden Sie im Attribut
icondes Elements<application>.Das Symbol des Broadcast-Empfängers, das entweder hier oder durch das
<application>-Element festgelegt wird, ist auch das Standardsymbol für alle Intent-Filter des Empfängers. Weitere Informationen finden Sie im Attributicondes Elements<intent-filter>. android:intentMatchingFlags-
Mit diesem Attribut können Sie genauer festlegen, wie das System eingehende Intents mit App-Komponenten abgleicht. Standardmäßig werden keine speziellen Abgleichsregeln angewendet.
Der für ein
<receiver>-Tag festgelegte Wert überschreibt den für das<application>-Tag festgelegten Wert.Der Wert muss einer oder mehrere der folgenden Flags sein, die durch „
|“ getrennt sind:Flag Beschreibung noneDeaktiviert alle speziellen Abgleichsregeln für eingehende Intents. Wenn Sie mehrere Flags angeben, werden widersprüchliche Werte aufgelöst, indem dem Flag noneVorrang eingeräumt wird.enforceIntentFilterErzwingt einen strengeren Abgleich für eingehende Intents:
- Explizite Intents müssen mit dem Intent-Filter der Zielkomponente übereinstimmen.
- Intents ohne Aktion entsprechen keinem Intent-Filter.
allowNullActionDie Abgleichsregeln werden gelockert, sodass auch Intents ohne Aktion abgeglichen werden können. Dieses Flag wird in Verbindung mit
enforceIntentFilterverwendet, um das folgende Verhalten zu erzielen:- Explizite Intents müssen mit dem Intent-Filter der Zielkomponente übereinstimmen.
- Intents ohne Aktion dürfen mit jedem Intent-Filter übereinstimmen.
Weitere Informationen finden Sie im Abschnitt Safer Intents (Sicherere Intents) unter „Verhaltensänderungen in Android 16 (API-Level 36)“.
android:label- Ein für Nutzer lesbares Label für den Übertragungsempfänger. Wenn dieses Attribut nicht festgelegt ist, wird stattdessen das Label verwendet, das für die Anwendung als Ganzes festgelegt ist. Weitere Informationen finden Sie im Attribut
labeldes Elements<application>.Das Label des Broadcast-Empfängers, das entweder hier oder durch das
<application>-Element festgelegt wird, ist auch das Standardlabel für alle Intent-Filter des Empfängers. Weitere Informationen finden Sie im Attributlabeldes Elements<intent-filter>.Das Label wird als Verweis auf eine String-Ressource festgelegt, damit es wie andere Strings in der Benutzeroberfläche lokalisiert werden kann. Während Sie die Anwendung entwickeln, kann sie jedoch auch als Raw-String festgelegt werden.
android:name- Der Name der Klasse, die den Broadcast-Receiver implementiert, eine Unterklasse von
BroadcastReceiver. Dies ist ein voll qualifizierter Klassenname, z. B."com.example.project.ReportReceiver". Wenn das erste Zeichen des Namens ein Punkt ist, z. B.".ReportReceiver", wird es an den im<manifest>-Element angegebenen Paketnamen angehängt.Nachdem Sie Ihre Anwendung veröffentlicht haben, dürfen Sie diesen Namen nicht mehr ändern, es sei denn, Sie legen
android:exported="false"fest.Es gibt keine Standardeinstellung. Der Name muss angegeben werden.
android:permission- Der Name einer Berechtigung, die Broadcaster benötigen, um eine Nachricht an den Übertragungsempfänger zu senden.
Wenn dieses Attribut nicht festgelegt ist, gilt die Berechtigung, die durch das Attribut
permissiondes Elements<application>festgelegt wird, für den Broadcast-Receiver. Wenn keines der Attribute festgelegt ist, ist der Empfänger nicht durch eine Berechtigung geschützt.Weitere Informationen zu Berechtigungen finden Sie im Abschnitt Berechtigungen in der Übersicht zum App-Manifest und unter Sicherheitstipps.
android:processDer Name des Prozesses, in dem der Broadcast-Empfänger ausgeführt wird. Normalerweise werden alle Komponenten einer Anwendung im Standardprozess ausgeführt, der für die Anwendung erstellt wurde. Er hat denselben Namen wie das Anwendungspaket.
Mit dem Attribut
processdes Elements<application>kann ein anderer Standardwert für alle Komponenten festgelegt werden. Jede Komponente kann den Standardwert jedoch mit ihrem eigenenprocess-Attribut überschreiben, sodass Sie Ihre Anwendung auf mehrere Prozesse verteilen können.Wenn der diesem Attribut zugewiesene Name mit einem Doppelpunkt (
:) beginnt, wird bei Bedarf ein neuer Prozess erstellt, der für die Anwendung privat ist, und der Übertragungsempfänger wird in diesem Prozess ausgeführt.Wenn der Prozessname mit einem Kleinbuchstaben beginnt, wird der Empfänger in einem globalen Prozess mit diesem Namen ausgeführt, sofern er die Berechtigung dazu hat. Dadurch können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, was den Ressourcenverbrauch verringert.
- 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: 2026-07-03 (UTC).
[null,null,["Zuletzt aktualisiert: 2026-07-03 (UTC)."],[],[]]