- 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, also eine Unterklasse vom Typ
BroadcastReceiver
, als eine der Komponenten der Anwendung. Broadcast-Empfänger ermöglichen es Anwendungen, Intents zu empfangen, die vom System oder von anderen Anwendungen gesendet werden, auch wenn andere Komponenten der Anwendung nicht ausgeführt werden.Es gibt zwei Möglichkeiten, dem System einen Rundfunkempfänger bekannt zu geben. Eine Möglichkeit besteht darin, es in der Manifestdatei mit diesem Element zu deklarieren. Die andere besteht darin, den Empfänger dynamisch im Code zu erstellen und mit der Methode
Context.registerReceiver()
oder einer der überlasteten Versionen zu registrieren.Weitere Informationen zum dynamischen Erstellen von Empfängern finden Sie in der Beschreibung der Klasse
BroadcastReceiver
.Wenn dieser Empfänger systemfremde Broadcasts verarbeitet, gib einen Wert für
android:exported
an. Setze diesen Wert auf"true"
, wenn der Empfänger Broadcasts von anderen Apps empfangen kann, oder auf"false"
, wenn er nur Broadcasts von deiner eigenen App empfangen soll.Du musst das Attribut
android:permission
nicht entfernen, wenn du es bereits deklariert hast.Warnung:Begrenzen Sie die Anzahl der Broadcast-Empfänger, die Sie in Ihrer App festlegen. Wenn zu viele Broadcast-Empfänger festgelegt sind, kann dies die Leistung Ihrer App und die Akkulaufzeit der Nutzergeräte beeinträchtigen. Weitere Informationen zu APIs, die Sie anstelle der Klasse
BroadcastReceiver
für die Planung von Hintergrundarbeiten verwenden können, finden Sie unter Hintergrundoptimierung. - Attribute:
android:directBootAware
Ob der Broadcast-Empfänger Direct Boot-Aware ist, d. h., ob er ausgeführt werden kann, bevor der Nutzer das Gerät entsperrt.
Hinweis : Während des direkten Starts kann ein Broadcast-Empfänger in Ihrer App nur auf die Daten zugreifen, die im gerätegeschützten Speicher gespeichert sind.
Der Standardwert ist
"false"
.android:enabled
- Gibt an, ob der Sender 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 ein eigenesenabled
-Attribut, das für alle Anwendungskomponenten einschließlich Übertragungsempfänger gilt. Die Attribute<application>
und<receiver>
müssen beide"true"
sein, damit der Sender aktiviert wird. Wenn einer der beiden Werte"false"
ist, ist er deaktiviert und kann nicht instanziiert werden. android:exported
- Gibt an, ob der Broadcast-Empfänger Nachrichten von Systemquellen außerhalb seiner Anwendung empfangen kann. Es ist
"true"
, wenn dies möglich ist, und andernfalls"false"
. Bei"false"
empfängt der Empfänger nur die Nachrichten, die vom System, von Komponenten derselben Anwendung oder von Anwendungen mit derselben Nutzer-ID gesendet wurden.Wenn kein Wert angegeben ist, hängt der Standardwert davon ab, ob der Broadcast-Empfä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 Exposition eines Senders zu begrenzen. Sie können mit einer Berechtigung auch einschränken, welche externen Entitäten Nachrichten senden dürfen. Weitere Informationen finden Sie im Attribut
permission
. android:icon
- Ein Symbol, das den Sender darstellt. Dieses Attribut wird als Verweis auf eine Drawable-Ressource festgelegt, die die Bilddefinition enthält.
Ist kein Wert festgelegt, wird stattdessen das für die gesamte Anwendung angegebene Symbol verwendet. Weitere Informationen finden Sie im Attribut
icon
des Elements<application>
.Das Symbol des Broadcast-Empfängers, ob hier oder durch das Element
<application>
festgelegt, ist auch das Standardsymbol für alle Intent-Filter des Empfängers. Weitere Informationen finden Sie im Attributicon
des<intent-filter>
-Elements. android:label
- Ein für den Empfänger lesbares Etikett. Ist dieses Attribut nicht festgelegt, wird stattdessen das Label verwendet, das für die gesamte Anwendung festgelegt ist. Weitere Informationen finden Sie im Attribut
label
des<application>
-Elements.Das Label des Broadcast-Empfängers, ob hier oder durch das Element
<application>
festgelegt, ist auch das Standardlabel für alle Intent-Filter des Empfängers. Weitere Informationen finden Sie im Attributlabel
des<intent-filter>
-Elements.Das Label wird als Verweis auf eine Stringressource festgelegt, sodass es wie andere Strings in der Benutzeroberfläche lokalisiert werden kann. Der Einfachheit halber kann sie beim Entwickeln der Anwendung auch als Rohstring festgelegt werden.
android:name
- Der Name der Klasse, die den Broadcast-Empfänger implementiert, eine abgeleitete Klasse von
BroadcastReceiver
. Dies ist ein voll qualifizierter Klassenname wie"com.example.project.ReportReceiver"
. Wenn das erste Zeichen des Namens jedoch ein Punkt ist (z. B.".ReportReceiver"
), wird es an den im<manifest>
-Element angegebenen Paketnamen angehängt.Nachdem Sie Ihre Anwendung veröffentlicht haben, ändern Sie diesen Namen nicht, 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 Sender benötigen, um eine Nachricht an den Übertragungsempfänger zu senden.
Wenn dieses Attribut nicht festgelegt ist, gilt die durch das Attribut
permission
des<application>
-Elements festgelegte Berechtigung für den Broadcast-Empfänger. Ist keines der beiden Attribute festgelegt, ist der Empfänger nicht durch eine Berechtigung geschützt.Weitere Informationen zu Berechtigungen finden Sie im Abschnitt Berechtigungen in der App-Manifest-Übersicht und in Sicherheitstipps.
android:process
- Der Name des Prozesses, den der Empfänger des Rundfunks ausführt.
Normalerweise werden alle Komponenten einer Anwendung in dem Standardprozess ausgeführt, der für die Anwendung erstellt wurde. Es hat denselben Namen wie das Anwendungspaket.
Mit dem Attribut
process
des Elements<application>
kann für alle Komponenten ein anderer Standardwert festgelegt werden. Jede Komponente kann die Standardeinstellung mit einem 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, für die Anwendung privater Prozess erstellt und der Broadcast-Empfänger wird in diesem Prozess ausgeführt.Wenn der Prozessname mit einem Kleinbuchstaben beginnt, wird der Empfänger in einem globalen Prozess dieses Namens ausgeführt, sofern er über die entsprechende Berechtigung verfügt. Dadurch können Komponenten in verschiedenen Anwendungen einen Prozess gemeinsam nutzen, wodurch die Ressourcennutzung reduziert wird.
- eingeführt in:
- API-Level 1
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: 2024-04-02 (UTC).
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Benötigte Informationen nicht gefunden"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Zu umständlich/zu viele Schritte"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Nicht mehr aktuell"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Problem mit der Übersetzung"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Problem mit Beispielen/Code"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Sonstiges"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Leicht verständlich"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Mein Problem wurde gelöst"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Sonstiges"
}]