Best Practices für App-Berechtigungen

Berechtigungsanfragen schützen vertrauliche Informationen auf einem Gerät und sollte nur verwendet werden, wenn der Zugriff auf Informationen der App funktionieren. Dieses Dokument enthält Tipps dazu, ohne Zugriff auf dieselben oder bessere Funktionen auf solche Informationen zugreifen; Es ist keine abschließende Diskussion darüber, im Android-Betriebssystem.

Einen allgemeinen Überblick über die Android-Berechtigungen finden Sie in der Berechtigungsübersicht. Weitere Informationen zum Arbeiten mit Berechtigungen in Ihrem Code Siehe App-Berechtigungen anfordern.

Berechtigungen unter Android 6.0 und höher

Ab Android 6.0 (API-Level 23) können Apps Berechtigungen von zur Laufzeit und nicht vor der Installation. Dadurch können Apps Berechtigungen anfordern, wenn die App die Dienste oder Daten benötigt durch die Dienste geschützt sind. Dadurch ändert sich die gesamte App zwar nicht (unbedingt) bringt es einige Änderungen mit sich, die die Art und Weise betreffen, wie sensible Nutzerdaten behandelt wird:

Mehr situativer Kontext

Nutzer werden während der Laufzeit, im Kontext Ihrer App, um die Berechtigung gebeten, auf die Funktionen zugreifen, die von diesen Berechtigungsgruppen abgedeckt sind. Nutzer sind eher je nach Kontext, in dem die Berechtigung angefordert wird, und wenn es eine Diskrepanz gibt vom Zweck Ihrer App zu unterscheiden, Es ist wichtiger, den Nutzenden eine detaillierte Erklärung dafür zu geben, warum Sie um die Berechtigung anzufordern. Nach Möglichkeit sollten Sie eine eine Erläuterung Ihres Antrags sowohl zum Zeitpunkt des Antrags als auch Nachfragen, wenn der Nutzer die Anfrage ablehnt.

Um die Wahrscheinlichkeit zu erhöhen, dass eine Berechtigungsanfrage akzeptiert wird, wenn eine bestimmte Funktion benötigt wird. Zum Beispiel nur nach dem Mikrofon fragen. wenn ein Nutzer auf die Mikrofonschaltfläche klickt. Die Wahrscheinlichkeit, dass Nutzer eine Berechtigung gewähren, die sie erwarten.

Mehr Flexibilität beim Gewähren von Berechtigungen

Nutzer können den Zugriff auf einzelne Berechtigungen bei Bedarf verweigern und in den Einstellungen. Es kann jedoch überrascht sein, wenn die Funktionen kaputt ist. Es empfiehlt sich, zu überprüfen, wie viele Nutzer Ablehnungen vornehmen. (z.B. mit Google Analytics), sodass Sie entweder refaktorieren die Berechtigung für Ihre App zu ändern, Erklärung, warum du die Berechtigung benötigst, damit deine App richtig funktioniert. Ich dass Ihre App Ausnahmen verarbeitet, wenn Nutzer in den Einstellungen Berechtigungsanfragen ablehnen oder Berechtigungen deaktivieren.

Erhöhter Transaktionsaufwand

Nutzer werden gebeten, den Zugriff für Berechtigungsgruppen einzeln und nicht als Satz zu gewähren. Dieses ist es sehr wichtig, die Anzahl der Berechtigungen, die Sie benötigen, anfragen. Dies erhöht den Aufwand beim Erteilen von Berechtigungen für den Nutzer, sodass erhöht die Wahrscheinlichkeit, dass mindestens eine der Anfragen abgelehnt wird.

Berechtigungen, die die Umstellung auf einen Standard-Handler erfordern

Einige Apps benötigen Zugriff auf vertrauliche Nutzerinformationen aus der Anrufliste und SMS-Nachrichten. Wenn Sie die Berechtigungen für die Anrufliste anfordern möchten und SMS-Nachrichten senden und Ihre App im Play Store veröffentlichen, müssen Sie die Nutzer Ihre App als Standard-Handler für eine zentrale Systemfunktion festzulegen, bevor die diese Laufzeitberechtigungen anfordern.

Weitere Informationen zu Standard-Handlern, einschließlich einer Anleitung zum Anzeigen eines Standard-Handler-Aufforderung für Nutzer, siehe Leitfaden zu Berechtigungen, die nur in Standard-Handler.

Wissen, mit welchen Bibliotheken Sie arbeiten

Manchmal sind für die Bibliotheken, die Sie in Ihrer App verwenden, Berechtigungen erforderlich. Für Für Anzeigen- und Analysebibliotheken benötigen Sie möglicherweise Zugriff auf die LOCATION Berechtigungsgruppe zum Implementieren der erforderlichen Funktionalität. Aus Nutzersicht ist die Berechtigungsanfrage jedoch nicht aus der Bibliothek, sondern aus Ihrer App.

Genauso wie Nutzer Apps auswählen, die für denselben Zweck sollten Entwickler ihre Bibliotheken überprüfen und Drittanbieter-SDKs verwenden, die keine unnötigen Berechtigungen nutzen. Wenn beispielsweise wenn Sie eine Bibliothek mit Standortfunktionen nutzen, fordern nur dann die Berechtigung „FINE_LOCATION“ an, mit Funktionen für die geografische Ausrichtung.

Hintergrundzugriff auf Standort beschränken

Wenn Ihre App im Hintergrund ausgeführt wird, kann der Zugriff auf Der Standort sollte für die Hauptfunktionen der App und einen klaren Vorteil für die Nutzenden aufzeigen.

Für beide Berechtigungsmodelle testen

Ab Android 6.0 (API-Level 23) gewähren oder widerrufen Nutzer Apps Berechtigungen während der Laufzeit zu erteilen, anstatt dies beim Installieren der App zu tun. Als müssen Sie Ihre App unter einer größeren Bandbreite von Bedingungen testen. Vorher Android 6.0 haben, könnten Sie davon ausgehen, dass Ihre App alle Berechtigungen hat, die im App-Manifest deklariert sind. Die Nutzenden kann Berechtigungen für alle Apps unabhängig vom API-Level aktivieren oder deaktivieren. Es empfiehlt sich, Tests durchzuführen, um sicherzustellen, dass Ihre App auf verschiedenen Berechtigungsszenarien.

Die folgenden Tipps helfen dir, berechtigungsbezogene Codeprobleme zu finden auf Geräten mit API-Level 23 oder höher:

  • Ermitteln Sie die aktuellen Berechtigungen Ihrer App und die zugehörigen Codepfade.
  • Nutzerflüsse für Dienste und Daten mit Berechtigungen testen
  • Testen Sie verschiedene Kombinationen gewährter oder widerrufener Berechtigungen. Für Eine Kamera-App könnte z. B. CAMERA, READ_CONTACTS und ACCESS_FINE_LOCATION in seinem Manifest. Du solltest die App mit jeder dieser Berechtigungen testen aktiviert und deaktiviert werden, damit die App alle Berechtigungen reibungslos zu gestalten.
  • Mit dem Tool adb können Sie Berechtigungen über die Befehlszeile eingeben: <ph type="x-smartling-placeholder">
      </ph>
    • Berechtigungen und Status nach Gruppe auflisten:
      $ adb shell pm list permissions -d -g
    • Gewähren oder widerrufen Sie eine oder mehrere Berechtigungen:
      $ adb shell pm [grant|revoke] <permission-name> ...
  • App auf Dienste analysieren, die Berechtigungen verwenden.

Weitere Informationen