<Berechtigung>

Syntax:
<permission android:description="string resource"
            android:icon="drawable resource"
            android:label="string resource"
            android:name="string"
            android:permissionGroup="string"
            android:protectionLevel=["normal" | "dangerous" |
                                     "signature" | ...] />
enthalten in:
<manifest>
description:
Deklariert eine Sicherheitsberechtigung, mit der der Zugriff auf bestimmte Komponenten oder Funktionen dieser oder anderer Anwendungen eingeschränkt wird. Weitere Informationen zur Funktionsweise von Berechtigungen finden Sie im Abschnitt Berechtigungen in der App-Manifest-Übersicht und Sicherheitstipps.
Attribute:
android:description
Eine für Nutzer lesbare Beschreibung der Berechtigung, die länger und aussagekräftiger als das Label ist. Sie kann beispielsweise angezeigt werden, um dem Nutzer die Berechtigung zu erklären, wenn er aufgefordert wird, die Berechtigung einer anderen Anwendung zu erteilen.

Dieses Attribut wird als Verweis auf eine String-Ressource festgelegt. Im Gegensatz zum Attribut label kann es kein Rohstring sein.

android:icon
Ein Verweis auf eine Drawable-Ressource für ein Symbol, das die Berechtigung darstellt.
android:label
Ein visuell lesbarer Name für die Berechtigung.

Der Einfachheit halber kann das Label während der Entwicklung der Anwendung direkt als Rohstring festgelegt werden. Wenn die Anwendung jedoch zur Veröffentlichung bereit ist, legen Sie sie als Verweis auf eine String-Ressource fest, damit sie wie andere Strings in der Benutzeroberfläche lokalisiert werden kann.

android:name
Der Name, der im Code verwendet werden soll, um auf die Berechtigung zu verweisen, z. B. in einem <uses-permission>-Element oder den permission-Attributen von Anwendungskomponenten.

Hinweis:Mehrere Pakete dürfen nur dann eine Berechtigung mit demselben Namen deklarieren, wenn alle Pakete mit demselben Zertifikat signiert sind. Wenn ein Paket eine Berechtigung deklariert, erlaubt das System dem Nutzer nicht, andere Pakete mit demselben Berechtigungsnamen zu installieren, es sei denn, diese Pakete sind mit demselben Zertifikat wie das erste Paket signiert.

Aus diesem Grund empfiehlt Google, den Paketnamen der App als Präfix für Berechtigungen zu verwenden und eine umgekehrte Domain zu benennen. Folgen Sie diesem Präfix mit .permission. und einer Beschreibung der Funktion, die die Berechtigung im oberen SNAKE_CASE-Abschnitt darstellt. Beispiel: com.example.myapp.permission.ENGAGE_HYPERSPACE.

Wenn Sie dieser Empfehlung folgen, vermeiden Sie Namenskonflikte und helfen, den Inhaber und die Absicht einer benutzerdefinierten Berechtigung klar zu identifizieren.

android:permissionGroup
Weist einer Gruppe diese Berechtigung zu. Der Wert dieses Attributs ist der Name der Gruppe, der in dieser oder einer anderen Anwendung mit dem Element <permission-group> deklariert wird. Wenn dieses Attribut nicht festgelegt ist, gehört die Berechtigung nicht zu einer Gruppe.
android:protectionLevel

Charakterisiert das mit der Berechtigung implizierte potenzielle Risiko und gibt das Verfahren an, das das System bei der Entscheidung, ob die Berechtigung einer Anwendung, die sie anfordert, zu gewähren, zu befolgen hat.

Jedes Schutzniveau besteht aus einem Basisberechtigungstyp und null oder mehr Flags. Das Schutzniveau "dangerous" hat beispielsweise keine Flags. Im Gegensatz dazu ist das Schutzniveau "signature|privileged" eine Kombination aus dem Basisberechtigungstyp "signature" und dem Flag "privileged".

In der folgenden Tabelle sind alle grundlegenden Berechtigungstypen aufgeführt. Eine Liste der Flags finden Sie unter protectionLevel.

Antwort Bedeutung
"normal" Der Standardwert. Berechtigung mit geringerem Risiko, die anfragende Anwendungen Zugriff auf isolierte Funktionen auf Anwendungsebene mit minimalem Risiko für andere Anwendungen, das System oder den Nutzer gewährt. Das System erteilt einer anfragenden Anwendung diese Berechtigung bei der Installation automatisch, ohne die ausdrückliche Zustimmung des Nutzers einzuholen. Der Nutzer hat jedoch immer die Möglichkeit, diese Berechtigungen vor der Installation zu überprüfen.
"dangerous" Eine Berechtigung mit höherem Risiko, die einer anfragenden Anwendung Zugriff auf private Nutzerdaten oder Kontrolle über das Gerät gewährt, die sich negativ auf den Nutzer auswirken kann. Da diese Art von Berechtigung ein potenzielles Risiko mit sich bringt, gewährt das System sie der anfragenden Anwendung möglicherweise nicht automatisch. Beispielsweise können dem Nutzer gefährliche Berechtigungen, die von einer Anwendung angefordert werden, angezeigt werden und vor dem Fortfahren bestätigt werden müssen. Es kann auch ein anderer Ansatz verfolgt werden, um zu verhindern, dass der Nutzer automatisch Zugriff auf solche Einrichtungen gewährt.
"signature" Eine Berechtigung, die vom System nur gewährt wird, wenn die anfragende Anwendung mit demselben Zertifikat signiert ist wie die Anwendung, die die Berechtigung deklariert hat. Wenn die Zertifikate übereinstimmen, gewährt das System die Berechtigung automatisch, ohne den Nutzer zu benachrichtigen oder um seine ausdrückliche Genehmigung zu bitten.
"knownSigner" Eine vom System nur dann erteilte Berechtigung, wenn die anfragende Anwendung mit einem zulässigen Zertifikat signiert ist. Wenn das Zertifikat des Anforderers aufgeführt ist, erteilt das System die Berechtigung automatisch, ohne den Nutzer zu benachrichtigen oder um seine ausdrückliche Genehmigung zu bitten.
"signatureOrSystem"

Altes Synonym für "signature|privileged". In API-Level 23 verworfen.

Berechtigung, die vom System nur Anwendungen gewährt wird, die sich in einem speziellen Ordner auf dem Android-System-Image befinden oder die mit demselben Zertifikat signiert sind wie die App, die die Berechtigung deklariert hat. Verwenden Sie diese Option nicht, da das Schutzniveau "signature" für die meisten Anforderungen ausreicht und unabhängig davon funktioniert, wo Anwendungen installiert werden.

Die Berechtigung "signatureOrSystem" wird in bestimmten Situationen verwendet, in denen mehrere Anbieter Anwendungen in ein System-Image integriert haben und bestimmte Features explizit freigeben müssen, da sie zusammen erstellt werden.

eingeführt in:
API-Level 1
Siehe auch:
<uses-permission>
<permission-tree>
<permission-group>