Aus Datenschutzgründen müssen Apps, die Standortdienste verwenden, Berechtigungen zur Standortermittlung anfordern.
Es gibt mehrere Berechtigungen, die mit dem Standort zusammenhängen. 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 erklärt, wie Sie in den einzelnen Fällen Berechtigungen zur Standortermittlung anfordern.
Wenn Sie Berechtigungen zur Standortermittlung anfordern möchten, folgen Sie den Best Practices für alle Laufzeitberechtigungen.
Arten des Standortzugriffs
Jede Berechtigung hat eine Kombination der folgenden Merkmale:
- Kategorie: Standort im Vordergrund oder Standortermittlung im Hintergrund.
- Genauigkeit: Genauer Standort oder ungefährer Standort.
Standort im Vordergrund
Wenn Ihre App eine Funktion enthält, die Standortinformationen nur einmal oder für eine bestimmte Zeit freigibt oder empfängt, ist für diese Funktion der Standortzugriff im Vordergrund erforderlich. Einige Beispiele:
- In einer Navigations-App können Nutzer mit einer Funktion eine detaillierte Routenführung abrufen.
- In einer Messaging-App können Nutzer mit einer Funktion ihren aktuellen Standort für einen anderen Nutzer freigeben.
Das System geht davon aus, dass Ihre App den Standort 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 bei, wenn sie in den Hintergrund verschoben wird, z. B. wenn der Nutzer auf seinem Gerät die Schaltfläche Home drückt oder das Display des Geräts ausschaltet.
Außerdem sollten Sie einen Dienst im Vordergrund vom Typ
locationdeklarieren, wie im folgenden Code-Snippet gezeigt. Unter Android 10 (API-Level 29) und höher müssen Sie diesen Dienst 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 deklarieren, dass Sie den Standort im Vordergrund benötigen, wenn Ihre App entweder die
ACCESS_COARSE_LOCATION Berechtigung oder die ACCESS_FINE_LOCATION
Berechtigung anfordert, wie im folgenden Snippet gezeigt:
<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 die Standortermittlung im Hintergrund, wenn eine Funktion in der App den Standort ständig für andere Nutzer freigibt oder die Geofencing API verwendet. Einige Beispiele:
- In einer App zur Standortfreigabe für Familienmitglieder können Nutzer mit einer Funktion ihren Standort kontinuierlich für Familienmitglieder freigeben.
- In einer IoT-App können Nutzer mit einer Funktion ihre Geräte zu Hause so konfigurieren, dass sie ausgeschaltet werden, wenn der Nutzer das Haus verlässt, und wieder eingeschaltet werden, wenn er nach Hause zurückkehrt.
Das System geht davon aus, dass Ihre App die Standortermittlung im Hintergrund verwendet, wenn sie in einer anderen Situation als den im Abschnitt zum Standort im Vordergrund beschriebenen auf den aktuellen Standort des Geräts zugreift. Die Genauigkeit der Standortermittlung im Hintergrund ist dieselbe wie die Genauigkeit der Standortermittlung im Vordergrund. Sie hängt von den Berechtigungen zur Standortermittlung ab, die Ihre App deklariert.
Unter Android 10 (API-Level 29) und höher müssen Sie die
ACCESS_BACKGROUND_LOCATION Berechtigung im Manifest Ihrer App deklarieren, um zur Laufzeit die
Standortermittlung im Hintergrund anzufordern. In früheren Android-Versionen erhält Ihre App automatisch auch die Standortermittlung im Hintergrund, wenn sie den Standortzugriff im Vordergrund erhält.
<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>
Genauigkeit
Android unterstützt die folgenden Genauigkeitsstufen für den Standort:
- Annähernd
- Liefert eine Schätzung des Gerätestandorts. Wenn diese Standortschätzung
vom
LocationManagerServiceoderFusedLocationProviderstammt, ist diese Schätzung auf etwa 3 Quadratkilometer (etwa 1,2 Quadratmeilen) genau. Ihre App kann Standorte mit dieser Genauigkeit erhalten, wenn Sie die BerechtigungACCESS_COARSE_LOCATION, aber nicht die BerechtigungACCESS_FINE_LOCATIONdeklarieren. - Präzise
- Liefert eine möglichst genaue Schätzung des Gerätestandorts.
Wenn die Standortschätzung vom
LocationManagerServiceoderFusedLocationProviderstammt, ist sie in der Regel auf etwa 50 Meter genau und manchmal sogar auf wenige Meter oder besser. Ihre App kann Standorte mit dieser Genauigkeit erhalten, wenn Sie die BerechtigungACCESS_FINE_LOCATIONdeklarieren.
Wenn der Nutzer die Berechtigung für den ungefähren Standort erteilt, hat Ihre App nur Zugriff auf den ungefähren Standort, unabhängig davon, welche Berechtigungen zur Standortermittlung Ihre App deklariert.
Ihre App sollte auch dann funktionieren, wenn der Nutzer nur den Zugriff auf den ungefähren Standort gewährt. Wenn eine Funktion in Ihrer App unbedingt Zugriff auf den genauen Standort benötigt
über die ACCESS_FINE_LOCATION Berechtigung, können Sie den Nutzer bitten, Ihrer App den Zugriff auf den genauen Standort zu erlauben.
Erinnerung an die Erteilung der Berechtigung zur Standortermittlung im Hintergrund
Unter Android 10 (API-Level 29) und höher plant das System eine Benachrichtigung für den Nutzer, wenn eine Funktion in Ihrer App zum ersten Mal auf die Standortermittlung im Hintergrund zugreift, nachdem der Nutzer den Zugriff auf die Standortermittlung im Hintergrund gewährt hat. In dieser Benachrichtigung wird der Nutzer daran erinnert, dass er Ihrer App den Zugriff auf den Gerätestandort jederzeit erlaubt hat. Eine Beispielbenachrichtigung ist in Abbildung 8 zu sehen.
Auf Standortanforderungen in den SDK-Abhängigkeiten Ihrer App prüfen
Prüfen Sie, ob Ihre App SDKs verwendet, die von Berechtigungen zur Standortermittlung abhängen, insbesondere von der Berechtigung ACCESS_FINE_LOCATION. Weitere Informationen finden Sie im Blogpost Getting to know the
behaviors of your SDK dependencies auf Medium.
Zusätzliche Ressourcen
Weitere Informationen zu Berechtigungen zur Standortermittlung unter Android finden Sie in den folgenden Materialien:
Codelabs
Videos
Beispiele
- Beispiel-App zur Veranschaulichung der Verwendung von Berechtigungen zur Standortermittlung