<Empfänger>

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 eigenes enabled-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 Attribut icon 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 Attribut label 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 eigenen process-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