Zum Schutz der Privatsphäre der Nutzer müssen Apps, die Standortdienste verwenden, Standortberechtigungen anfordern.
Es gibt mehrere Berechtigungen, die sich auf die Standortermittlung beziehen. Welche Berechtigungen Sie anfordern und wie Sie sie anfordern, hängt von den Standortanforderungen für den Anwendungsfall Ihrer App ab.
Auf dieser Seite werden die verschiedenen Arten von Standortanforderungen beschrieben und es wird erläutert, wie Sie in jedem Fall Standortberechtigungen anfordern.
Wenn Sie Berechtigungen zur Standortermittlung anfordern möchten, beachten Sie die Best Practices für alle Laufzeitberechtigungen.
Arten des Standortzugriffs
Jede Berechtigung hat eine Kombination der folgenden Eigenschaften:
- Kategorie: Entweder Standort im Vordergrund oder Standort im Hintergrund.
- Genauigkeit: Entweder genauer Standort oder ungefährer Standort.
Standortermittlung im Vordergrund
Wenn Ihre App eine Funktion enthält, die Standortinformationen nur einmal oder für einen bestimmten Zeitraum freigibt oder empfängt, ist für diese Funktion der Zugriff auf die Standortermittlung im Vordergrund erforderlich. Beispiele:
- In einer Navigations-App können Nutzer mit einer Funktion detaillierte Wegbeschreibungen abrufen.
- In einer Messaging-App können Nutzer mit einer Funktion ihren aktuellen Standort mit einem anderen Nutzer teilen.
Das System geht davon aus, dass Ihre App die Standortermittlung im Vordergrund verwendet, wenn eine Funktion Ihrer App in einer der folgenden Situationen auf den aktuellen Standort des Geräts zugreift:
- Eine Aktivität, die zu Ihrer App gehört, ist sichtbar.
Ihre App führt einen Dienst im Vordergrund aus. Wenn ein Dienst im Vordergrund ausgeführt wird, wird der Nutzer durch eine dauerhafte Benachrichtigung darauf aufmerksam gemacht. Ihre App behält den Zugriff, wenn sie im Hintergrund ausgeführt wird, z. B. wenn der Nutzer die Schaltfläche Start auf seinem Gerät drückt oder das Display seines Geräts ausschaltet.
Außerdem sollten Sie einen Typ von Dienst im Vordergrund von
location
deklarieren, wie im folgenden Code-Snippet gezeigt. Unter Android 10 (API-Level 29) und höher müssen Sie diesen Diensttyp im Vordergrund deklarieren.<!-- Recommended for Android 9 (API level 28) and lower. --> <!-- Required for Android 10 (API level 29) and higher. --> <service android:name="MyNavigationService" android:foregroundServiceType="location" ... > <!-- Any inner elements would go here. --> </service>
Sie erklären, dass die Standortermittlung im Vordergrund erforderlich ist, wenn Ihre App entweder die Berechtigung ACCESS_COARSE_LOCATION
oder die Berechtigung ACCESS_FINE_LOCATION
anfordert, wie im folgenden Snippet dargestellt:
<manifest ... >
<!-- Always include this permission -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- Include only if your app benefits from precise location access. -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
</manifest>
Standortermittlung im Hintergrund
Eine App benötigt Zugriff auf die Standortermittlung im Hintergrund, wenn eine Funktion in der App den Standort ständig mit anderen Nutzern teilt oder die Geofencing API verwendet. Beispiele:
- In einer App zur Standortfreigabe für Familien können Nutzer ihren Standort kontinuierlich mit Familienmitgliedern teilen.
- In einer IoT-App können Nutzer ihre Haushaltsgeräte so konfigurieren, dass sie sich ausschalten, wenn der Nutzer das Haus verlässt, und wieder einschalten, wenn er nach Hause zurückkehrt.
Das System betrachtet Ihre App als Nutzer der Standortermittlung im Hintergrund, wenn sie in einer anderen Situation als den im Abschnitt Standortermittlung im Vordergrund beschriebenen Fällen auf den aktuellen Standort des Geräts zugreift. Die Genauigkeit der Standortermittlung im Hintergrund entspricht der Genauigkeit der Standortermittlung im Vordergrund, die von den von Ihrer App angegebenen Berechtigungen für die Standortermittlung abhängt.
Unter Android 10 (API-Level 29) und höher müssen Sie die Berechtigung ACCESS_BACKGROUND_LOCATION
im Manifest Ihrer App deklarieren, um bei der Laufzeit den Zugriff auf die Standortermittlung im Hintergrund anzufordern. In früheren Android-Versionen erhält Ihre App, wenn sie den Zugriff auf den Standort im Vordergrund erhält, automatisch auch den Zugriff auf den Standort im Hintergrund.
<manifest ... >
<!-- Required only when requesting background location access on
Android 10 (API level 29) and higher. -->
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
</manifest>
Richtigkeit
Android unterstützt die folgenden Standortgenauigkeitsstufen:
- Ungefähr
- Ermöglicht eine Schätzung des Gerätestandorts. Wenn diese Standortschätzung von
LocationManagerService
oderFusedLocationProvider
stammt, ist sie auf etwa 3 Quadratkilometer genau. Ihre App kann Standorte mit dieser Genauigkeit erhalten, wenn Sie die BerechtigungACCESS_COARSE_LOCATION
angeben, aber nicht die BerechtigungACCESS_FINE_LOCATION
. - Genau
- Ermöglicht eine möglichst genaue Schätzung des Gerätestandorts.
Wenn die Standortschätzung von
LocationManagerService
oderFusedLocationProvider
stammt, liegt sie in der Regel innerhalb von etwa 50 Metern und ist manchmal sogar auf wenige Meter genau. Ihre App kann Standorte mit dieser Genauigkeit erhalten, wenn Sie die BerechtigungACCESS_FINE_LOCATION
angeben.
Wenn der Nutzer die Berechtigung zur Ermittlung des ungefähren Standorts gewährt, hat Ihre App nur Zugriff auf den ungefähren Standort, unabhängig davon, welche Berechtigungen zur Standortermittlung Ihre App angibt.
Ihre App sollte auch dann funktionieren, wenn der Nutzer nur den Zugriff auf den ungefähren Standort gewährt. Wenn für eine Funktion in Ihrer App unbedingt der Zugriff auf den genauen Standort mithilfe der Berechtigung ACCESS_FINE_LOCATION
erforderlich ist, können Sie den Nutzer bitten, Ihrer App den Zugriff auf den genauen Standort zu erlauben.
Erinnerung zur Erteilung der Berechtigung zur Standortermittlung im Hintergrund
Unter Android 10 (API-Level 29) und höher wird vom System eine Benachrichtigung an den Nutzer gesendet, wenn eine Funktion in Ihrer App zum ersten Mal nach der Erteilung des Zugriffs auf die Standortermittlung im Hintergrund auf den Gerätestandort im Hintergrund zugreift. Diese Benachrichtigung erinnert den Nutzer daran, dass er Ihrer App erlaubt hat, jederzeit auf den Gerätestandort zuzugreifen. Abbildung 8 zeigt eine Beispielbenachrichtigung.
Standortanforderungen in den SDK-Abhängigkeiten Ihrer App prüfen
Prüfen Sie, ob in Ihrer App SDKs verwendet werden, die von Berechtigungen zur Standortermittlung abhängen, insbesondere von der Berechtigung ACCESS_FINE_LOCATION
. Weitere Informationen finden Sie im Blogpost Das Verhalten Ihrer SDK-Abhängigkeiten kennenlernen auf Medium.
Weitere Informationen
Weitere Informationen zu Standortberechtigungen unter Android finden Sie in den folgenden Dokumenten:
Codelabs
Videos
Produktproben
- Beispiel-App, die die Verwendung von Berechtigungen zur Standortermittlung veranschaulicht.