Location Permission in der Mobilentwicklung: Was es ist, Zugriffsstufen und Funktionsprinzip

Autor: IT Sectr Veröffentlicht: 2026-05-21 Lesezeit: 8 Min.

Location Permission ist eine Berechtigung, die eine mobile App vom Benutzer anfordert, um auf Daten über seinen geografischen Standort zuzugreifen. Ohne diese Berechtigung kann die App die Koordinaten des Geräts nicht ermitteln und daher keine Standortdienste bereitstellen. Laut Apple Developer Documentation, 2024 sind alle Apps, die Standortdienste nutzen, verpflichtet, die ausdrückliche Zustimmung des Benutzers über einen Systemdialog einzuholen.

Wichtige Punkte

  • Location Permission — eine obligatorische Berechtigung für den Zugriff auf den Gerätestandort in mobilen Apps.
  • Die Zugriffsstufen unterteilen sich in Hintergrund und bei Nutzung der App auf beiden Plattformen.
  • Android verwendet ACCESS_FINE_LOCATION und ACCESS_COARSE_LOCATION zur genauen und ungefähren Koordinatenbestimmung.
  • iOS erfordert das Hinzufügen der Schlüssel NSLocationWhenInUseUsageDescription und NSLocationAlwaysUsageDescription in Info.plist.
  • Die Berechtigungsanfrage muss eine klare Erklärung enthalten, warum die App Standortdaten benötigt.

Was ist Location Permission?

Location Permission ist ein Betriebssystemmechanismus, der den Zugriff von Apps auf die geografischen Standortdaten des Geräts regelt. Ohne ausdrückliche Zustimmung des Benutzers kann die App keine GPS-Koordinaten, WLAN-Netzwerkdaten oder Mobilfunkmastinformationen abrufen.

Die mobilen Plattformen Android und iOS implementieren ihr eigenes Berechtigungssystem, aber die allgemeine Logik ist dieselbe: Die App deklariert die erforderlichen Berechtigungen im Manifest oder in der Konfigurationsdatei und fordert sie dann zur Laufzeit an. Laut Android Developers, 2024 gehören ab Android 10 alle Standortberechtigungen zur Kategorie der gefährlichen Berechtigungen und erfordern eine Laufzeitanfrage.

Der Grund für diesen Ansatz ist der Schutz der Privatsphäre der Benutzer. Standortdaten können verwendet werden, um Bewegungsprofile zu erstellen, Arbeits- und Freizeitorte zu bestimmen und Personen zu identifizieren. Daher verlangen beide Plattformen eine transparente Erklärung im Anfragedialog: Die App muss den Grund angeben, warum sie Zugriff auf den Standort benötigt.

Warum wird die Standortberechtigung benötigt?

Die Standortberechtigung ist für jede App erforderlich, deren Funktionalität von der Kenntnis des physischen Standorts des Benutzers abhängt. Karten und Navigation, Lieferdienste, Wetter-Apps, soziale Netzwerke mit Geotagging — all diese Kategorien von Software benötigen Location Permission.

Ohne diese Berechtigung kann die App die Gerätekoordinaten mit keiner der verfügbaren Methoden ermitteln: weder über das GPS-Modul, noch über WLAN-Scanning, noch über die Positionierung durch Mobilfunkmasten. Der Benutzer kann die Berechtigung jederzeit in den Systemeinstellungen widerrufen, wonach die App die Verweigerung korrekt behandeln muss.

Laut einer Studie des Pew Research Center (2024) widerrufen etwa 45% der Benutzer den Standortzugriff in Apps, die ihn nicht für ihre Kernfunktionalität nutzen. Das bedeutet, dass der Entwickler die Anfrage klar begründen und alternative Mechanismen für diejenigen anbieten muss, die Location Permission abgelehnt haben.

Rechtliche Anforderungen

Die DSGVO in Europa und das Bundesgesetz 152-FZ in Russland verlangen die Einholung einer informierten Einwilligung für die Verarbeitung von Standortdaten. Die App muss nicht nur über den Systemdialog um Erlaubnis bitten, sondern auch eine separate Mitteilung über die Zwecke der Datenerhebung bereitstellen. Ein Verstoß gegen diese Anforderungen kann mit Geldstrafen von bis zu 20 Millionen Euro oder 4% des Jahresumsatzes des Unternehmens geahndet werden.

Folgen fehlender Berechtigung

Wenn die App keine Location Permission anfordert oder der Benutzer den Zugriff verweigert, muss der Entwickler ein alternatives Szenario vorsehen. Für eine Karten-App könnte dies die manuelle Eingabe der Adresse sein, für eine Liefer-App die Auswahl aus einer Liste gespeicherter Adressen und für einen Wetterdienst die Stadtbestimmung per IP-Adresse. Graceful Degradation (sanfte Verschlechterung) ist eine von Google und Apple empfohlene Standardpraxis.

Zugriffsstufen auf den Standort

Die Zugriffsstufen auf den Standort unterscheiden sich auf Android und iOS, obwohl die Grundidee dieselbe ist: Je genauer der Zugriff, desto strengere Anforderungen stellt die Plattform an die App.

ZugriffsstufeAndroidiOS
Bei NutzungNur wenn die App aktiv istWhen In Use — nur in der App
HintergrundAlways — ständig, auch im HintergrundAlways — erfordert zusätzliche App Store-Prüfung
UngefährACCESS_COARSE_LOCATION (Genauigkeit bis 500 m)Mit Option Precision = Off (iOS 14+)

ACCESS_FINE_LOCATION und ACCESS_COARSE_LOCATION auf Android

ACCESS_FINE_LOCATION bietet Zugriff auf genaue GPS-Koordinaten mit einer Abweichung von bis zu mehreren Metern. Zur Deklaration dieser Berechtigung im Manifest wird die Konstante android.permission.ACCESS_FINE_LOCATION verwendet. ACCESS_COARSE_LOCATION hingegen liefert einen ungefähren Standort mit einer Genauigkeit von bis zu 500 Metern basierend auf WLAN- und Mobilfunkmastdaten.

When In Use und Always auf iOS

When In Use erlaubt der App, nur dann Koordinaten zu empfangen, wenn sie auf dem Bildschirm geöffnet ist. Always bietet Zugriff auf den Standort auch im Hintergrund, erfordert jedoch eine obligatorische Überprüfung durch den App Store. Ab iOS 14 kann der Benutzer die genaue Positionierung für jede App separat über den Precision-Schalter deaktivieren.

Location Permission auf Android anfordern

Die Anforderung von Location Permission auf Android erfolgt in zwei Schritten: Deklaration der Berechtigungen im Manifest und Laufzeitanfrage im Code. Ab Android 6.0 (API 23) werden alle gefährlichen Berechtigungen während der App-Ausführung angefordert, nicht bei der Installation.

Deklaration im Manifest

Der erste Schritt besteht darin, die erforderlichen Berechtigungen zur Datei AndroidManifest.xml hinzuzufügen. Für die genaue und ungefähre Positionsbestimmung werden unterschiedliche Konstanten verwendet.

xml
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

Laufzeitanfrage in Kotlin

Nach der Deklaration im Manifest muss der Systemdialog zur Berechtigungsanfrage im App-Code aufgerufen werden. Sehen wir uns ein Beispiel in Kotlin mit der Activity Result API an.

kotlin
private val locationPermissionRequest =
    registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
    when {
        permissions.getOrDefault(Manifest.permission.ACCESS_FINE_LOCATION, false) -> {
            // Berechtigung erteilt
            getLocation()
        }
        permissions.getOrDefault(Manifest.permission.ACCESS_COARSE_LOCATION, false) -> {
            // Nur ungefährer Standort
            getCoarseLocation()
        }
        else -> {
            // Benutzer abgelehnt
            showLocationExplanation()
        }
    }
}

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)
    checkLocationPermission()
}

Behandlung von Verweigerung und erneuter Anfrage

Wenn der Benutzer den Zugriff verweigert, erlaubt das Android-System nicht, den Dialog automatisch erneut anzuzeigen. Der Entwickler muss shouldShowRequestPermissionRationale aufrufen, um eine vorherige Erklärung anzuzeigen. Bei wiederholter Verweigerung mit dem Flag Never Ask Again sollte der Benutzer zu den Systemeinstellungen weitergeleitet werden.

kotlin
private fun checkLocationPermission() {
    when {
        ContextCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) ==
            PackageManager.PERMISSION_GRANTED -> {
            getLocation()
        }
        ActivityCompat.shouldShowRequestPermissionRationale(this,
            Manifest.permission.ACCESS_FINE_LOCATION) -> {
            showRationaleDialog {
                requestLocationPermission()
            }
        }
        else -> {
            openAppSettings()
        }
    }
}

Location Permission auf iOS anfordern

Die Anforderung von Location Permission auf iOS erfordert das Hinzufügen spezieller Schlüssel zur Info.plist-Datei und das Aufrufen von Methoden der CLLocationManager-Klasse. Apple legt besonderen Wert auf Datenschutz, daher muss der Erklärungstext im Anfragedialog so spezifisch wie möglich sein.

Info.plist konfigurieren

Um den Standort auf iOS anzufordern, müssen ein oder beide Schlüssel zur Info.plist hinzugefügt werden: NSLocationWhenInUseUsageDescription für den Zugriff bei Nutzung und NSLocationAlwaysAndWhenInUseUsageDescription für den Hintergrundzugriff. Der Wert jedes Schlüssels ist eine Zeichenfolge, die dem Benutzer im Dialog angezeigt wird.

xml
<key>NSLocationWhenInUseUsageDescription</key>
<string>Ihre App benötigt Ihren Standort, um nahegelegene Punkte auf der Karte anzuzeigen.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Ihre App benötigt Hintergrundzugriff auf den Standort, um die Route zu verfolgen.</string>

Anfrage in Swift

In Swift-Code erfolgt die Anfrage über eine Instanz von CLLocationManager. Je nach erforderlicher Zugriffsstufe wird requestWhenInUseAuthorization oder requestAlwaysAuthorization aufgerufen.

swift
import CoreLocation

class LocationManager: NSObject, CLLocationManagerDelegate {
    private let manager = CLLocationManager()

    func requestLocationAccess() {
        manager.delegate = self
        manager.requestWhenInUseAuthorization()
    }

    func locationManagerDidChangeAuthorization(_ manager: CLLocationManager) {
        switch manager.authorizationStatus {
        case .authorizedWhenInUse, .authorizedAlways:
            startLocationUpdates()
        case .denied, .restricted:
            showSettingsAlert()
        case .notDetermined:
            break
        }
    }
}

Unterschiede zwischen den Plattformen

Im Gegensatz zu Android bietet iOS dem Entwickler keine Methode zur Überprüfung von shouldShowRequestPermissionRationale. Das System entscheidet selbst, wann eine Erklärung angezeigt wird. Außerdem kann der Benutzer auf iOS die Berechtigung nur über die Systemeinstellungen ändern — die App kann den Systemdialog nach der Entscheidung des Benutzers nicht erneut anzeigen. RequestAlwaysAuthorization fordert zunächst When In Use an und dann, nach Erhalt der ersten Zustimmung, einen separaten Dialog für den Hintergrundzugriff.

Bewährte Praktiken mit Standortdiensten

Bewährte Praktiken mit Location Permission helfen, Benutzerablehnungen zu reduzieren und die Anforderungen der App-Stores zu erfüllen. Google und Apple haben Empfehlungen veröffentlicht, deren Einhaltung die Wahrscheinlichkeit der App-Genehmigung erhöht.

Berechtigung im Kontext anfordern

Zeigen Sie den Dialog zur Anforderung von Location Permission nicht sofort beim Start der App. Ein Benutzer, der die App gerade geöffnet hat, versteht noch nicht, warum er Zugriff auf den Standort gewähren soll. Contextual Request bedeutet, dass der Dialog in dem Moment erscheint, in dem der Benutzer tatsächlich eine Funktion benötigt, die eine Berechtigung erfordert. Zum Beispiel beim Klicken auf die Schaltfläche „Nächstgelegenes Geschäft finden“.

Erklären Sie den Grund vorab

Zeigen Sie vor dem Systemdialog Ihren eigenen Erklärungsbildschirm (Pre-Permission Screen). Erklären Sie darauf, warum die App den Standort benötigt, welche Daten gesammelt werden und wie sie verwendet werden. Nachdem der Benutzer auf Ihrem Bildschirm auf „Erlauben“ geklickt hat, zeigen Sie den Systemdialog an. Laut Appsflyer (2024) erhöht dieser Ansatz die Zustimmungsrate um 25-35%.

Fordern Sie Always nicht unnötig an

Hintergrundzugriff auf den Standort wird nur von Apps benötigt, die im Hintergrund arbeiten: Navigations-Apps, Aktivitätstracker, Lieferdienste. Wenn Ihre App nur Koordinaten bei geöffnetem Bildschirm benötigt, fordern Sie When In Use an. Der App Store wird die App ablehnen, wenn Always nicht funktional begründet ist. Unter Android wird der Hintergrundzugriff zusätzlich durch die Berechtigung ACCESS_BACKGROUND_LOCATION geregelt.

Häufig gestellte Fragen

Was passiert, wenn der Benutzer Location Permission verweigert?

Die App muss die Verweigerung korrekt behandeln und ein alternatives Szenario anbieten. Zum Beispiel die manuelle Eingabe der Adresse oder die Stadtbestimmung per IP-Adresse. Der Systemdialog wird nicht erneut angezeigt — der Benutzer muss zu den Einstellungen weitergeleitet werden.

Kann Location Permission ohne Erklärung angefordert werden?

Technisch gesehen ja — der Systemdialog kann ohne vorherigen Bildschirm aufgerufen werden. Allerdings beträgt die Zustimmungsrate ohne Erklärung 30-40%, während sie mit einem vorherigen Bildschirm 60-75% beträgt. Apple und Google empfehlen, den Grund für die Anfrage immer zu erklären.

Wie überprüfe ich den Status von Location Permission auf Android?

Verwenden Sie ContextCompat.checkSelfPermission mit der Konstante Manifest.permission.ACCESS_FINE_LOCATION. Die Methode gibt PERMISSION_GRANTED oder PERMISSION_DENIED zurück, wodurch der aktuelle Status ohne Aufruf des Systemdialogs ermittelt werden kann.

Was ist der Unterschied zwischen ACCESS_FINE_LOCATION und ACCESS_COARSE_LOCATION?

ACCESS_FINE_LOCATION bietet Zugriff auf genaue GPS-Koordinaten mit einer Abweichung von 3-10 Metern. ACCESS_COARSE_LOCATION liefert einen ungefähren Standort mit einer Genauigkeit von bis zu 500 Metern basierend auf WLAN und Mobilfunkmasten. Ab Android 12+ kann der Entwickler beide Berechtigungen gleichzeitig anfordern.

Ist Location Permission für BLE-Scanner erforderlich?

Unter Android ist für das Scannen von BLE-Geräten ACCESS_FINE_LOCATION oder ACCESS_COARSE_LOCATION erforderlich, da BLE-Signale zur Positionsbestimmung verwendet werden können. Unter iOS ist für BLE nur die Bluetooth-Berechtigung erforderlich — Location Permission wird nicht benötigt.

Zusammenfassung

  • Location Permission — ein zentraler Mechanismus zum Schutz der Privatsphäre, der den Zugriff von Apps auf den Gerätestandort regelt.
  • Die Zugriffsstufen umfassen Bei Nutzung (When In Use) und Hintergrund (Always) auf iOS sowie genau (ACCESS_FINE_LOCATION) und ungefähr (ACCESS_COARSE_LOCATION) auf Android.
  • Android erfordert ab API 23 die Deklaration von Berechtigungen im Manifest und eine Laufzeitanfrage über die Activity Result API.
  • iOS erfordert das Hinzufügen von Schlüsseln zur Info.plist und den Aufruf von CLLocationManager-Methoden mit obligatorischer Angabe des Grundes im Anfragentext.
  • Contextual Request — eine bewährte Methode, bei der der Dialog im Moment des Bedarfs erscheint, nicht beim App-Start.
  • Pre-Permission Screen erhöht die Zustimmungsrate um 25-35% laut Appsflyer (2024).
  • Benutzerverweigerung erfordert Graceful Degradation — ein alternatives Szenario ohne Nutzung des Standorts.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch