Eine spezielle Berechtigung schützt den Zugriff auf Systemressourcen, die besonders vertraulich sind oder nicht direkt mit dem Datenschutz für Nutzer in Verbindung stehen. Diese Berechtigungen sind anders als Installationszeit Berechtigungen und Laufzeit Berechtigungen
Beispiele für spezielle Berechtigungen:
- Die Planung exakter Alarme.
- Anzeigen und Überblenden anderer Apps
- Auf alle Speicherdaten zugreifen.
Apps, für die eine spezielle Berechtigung deklariert wird, sind unter Spezieller App-Zugriff aufgeführt in den Systemeinstellungen (Abbildung 1). Um der App eine spezielle Berechtigung zu erteilen, muss ein Nutzer muss diese Seite aufrufen: Einstellungen > Apps > Spezieller App-Zugriff.
Workflow
So fordern Sie eine spezielle Berechtigung an:
- Deklarieren Sie in der Manifestdatei Ihrer App die speziellen Berechtigungen, die deine App möglicherweise benötigt,
- Gestalten Sie die UX Ihrer App so, dass bestimmte Aktionen in Ihrer App in Verbindung gebracht werden. mit speziellen Berechtigungen. Lassen Sie die Nutzer wissen, welche Aktionen dass Ihre App auf private Nutzerdaten zugreifen darf.
- Warten Sie, bis der Nutzer den Vorgang gestartet hat. die Aufgabe oder Aktion in Ihrer App, die Zugriff auf einen bestimmten privaten Nutzer erfordert Daten. Dann kann deine App die spezielle Berechtigung anfordern, die die für den Zugriff auf diese Daten erforderlich sind.
- Überprüfen Sie, ob der Nutzer die spezielle Berechtigung, die Ihr die für die App erforderlich sind. Nutzen Sie dazu die benutzerdefinierte Prüfung jeder Berechtigung Funktion. Wenn die Berechtigung erteilt wird, kann deine App auf den privaten Nutzer zugreifen Daten. Sollte dies nicht der Fall sein, fahren Sie mit dem nächsten Schritt fort. Hinweis: Sie müssen überprüfen, ob Sie Sie jedes Mal die Berechtigung erhalten, wenn Sie einen Vorgang ausführen, Berechtigung.
- Präsentieren Sie dem Nutzer eine Begründung in einem UI-Element, das klar erkennbar ist. wird erläutert, auf welche Daten deine App zugreifen möchte und welche Vorteile sie bietet. die der Nutzer erhalten kann, wenn er die spezielle Berechtigung erteilt. Außerdem da Nutzer von Ihrer App zu den Systemeinstellungen geleitet werden, um die Berechtigung zu erteilen, Eine kurze Anleitung enthalten, in der erklärt wird, wie Nutzer die Berechtigung erteilen können . Die Benutzeroberfläche zur Begründung sollte dem Nutzer eine klare Option bieten, der Erteilung der Berechtigung zu widersprechen. Nachdem der Nutzer die Begründung, fahren Sie mit dem nächsten Schritt fort.
- Fordere die spezielle Berechtigung an, auf die deine App zugreifen muss. die privaten Nutzerdaten. Dies beinhaltet wahrscheinlich einen Intent für den entsprechenden in den Systemeinstellungen, auf der der Nutzer die Berechtigung erteilen kann. „Mag ich“-Bewertung entfernen Laufzeitberechtigungen: Es gibt Dialogfeld für Berechtigung ohne Pop-up.
- Überprüfen Sie die Antwort des Nutzers – ob er sich dafür entschieden hat, das spezielle Angebot zu gewähren oder abzulehnen.
Berechtigung: in der Methode
onResume()
. - Wenn der Nutzer Ihrer App die Berechtigung erteilt hat, können Sie auf den privaten Nutzerdaten. Wenn der Nutzer stattdessen die Berechtigung verweigert hat, berechtigen Sie die Funktion die Nutzerfreundlichkeit Ihrer App Es bietet Funktionen für Nutzende ohne die Informationen, durch diese Berechtigung geschützt sind.
Besondere Berechtigungen anfordern
Im Gegensatz zu Laufzeitberechtigungen
muss der Nutzer über die Seite Special App Access (Spezieller App-Zugriff) in
Systemeinstellungen. Apps können Nutzer mithilfe eines Intents dorthin weiterleiten, der die App pausiert
und öffnet die entsprechende Einstellungsseite für eine bestimmte Berechtigung.
Nachdem der Nutzer zur App zurückgekehrt ist, kann sie prüfen, ob die Berechtigung
in der Funktion onResume()
gewährt wird.
Der folgende Beispielcode zeigt, wie Sie den
SCHEDULE_EXACT_ALARMS
Sondergenehmigung von Nutzern:
val alarmManager = getSystemService<AlarmManager>()!!
when {
// if permission is granted, proceed with scheduling exact alarms…
alarmManager.canScheduleExactAlarms() -> {
alarmManager.setExact(...)
}
else -> {
// ask users to grant the permission in the corresponding settings page
startActivity(Intent(ACTION_REQUEST_SCHEDULE_EXACT_ALARM))
}
}
Beispielcode zum Prüfen der Berechtigung und zum Verarbeiten von Nutzerentscheidungen in onResume()
:
override fun onResume() {
// ...
if (alarmManager.canScheduleExactAlarms()) {
// proceed with the action (setting exact alarms)
alarmManager.setExact(...)
}
else {
// permission not yet approved. Display user notice and gracefully degrade
your app experience.
alarmManager.setWindow(...)
}
}
Best Practices und Tipps
In den folgenden Abschnitten finden Sie einige Best Practices und Überlegungen zur spezielle Berechtigungen anfordern.
Jede Berechtigung hat ihre eigene Prüfmethode
Spezielle Berechtigungen funktionieren anders als runtime
Berechtigungen Stattdessen
in der permissions API-Referenz
und verwenden Sie die benutzerdefinierte Zugriffsprüfung.
Funktionen für jede Sonderberechtigung. Beispiele:
AlarmManager#canScheduleExactAlarms()
für die
SCHEDULE_EXACT_ALARMS
Berechtigung und
Environment#isExternalStorageManager()
für die
MANAGE_EXTERNAL_STORAGE
.
Berechtigung.
Anfrage im Kontext
Ähnlich wie Laufzeitberechtigungen sollten Apps spezielle Berechtigungen anfordern
im Kontext, wenn der Nutzer eine bestimmte Aktion anfordert, für die
Berechtigung. Warten Sie beispielsweise, bis die Berechtigung SCHEDULE_EXACT_ALARMS
angefordert wird
bis der Nutzer den Versand einer E-Mail zu einem bestimmten Zeitpunkt plant.
Erkläre die Anfrage
Begründen Sie, bevor Sie zu den Systemeinstellungen weiterleiten. Da Nutzende die vorübergehend spezielle Berechtigungen erteilen, zeigen Sie vor dem Rufen Sie in den Systemeinstellungen des Intents die Seite Special App Access (Spezieller App-Zugriff) auf. Diese Benutzeroberfläche klar erklären, warum die App die Berechtigung benötigt und wie die Nutzenden auf der Einstellungsseite.