Location Permission dans le développement mobile : ce que c'est, niveaux d'accès et principe de fonctionnement

Auteur : IT Sectr Publié le : 2026-05-21 Temps de lecture : 8 min

Location Permission est une autorisation qu'une application mobile demande à l'utilisateur pour accéder aux données de sa position géographique. Sans cette autorisation, l'application ne peut pas déterminer les coordonnées de l'appareil et ne peut donc pas fournir de fonctions de géolocalisation. Selon Apple Developer Documentation, 2024, toutes les applications utilisant des services de géolocalisation sont tenues de demander le consentement explicite de l'utilisateur via une boîte de dialogue système.

Points clés

  • Location Permission — une autorisation obligatoire pour accéder à la géolocalisation de l'appareil dans les applications mobiles.
  • Les niveaux d'accès se divisent en arrière-plan et lors de l'utilisation de l'application sur les deux plateformes.
  • Android utilise ACCESS_FINE_LOCATION et ACCESS_COARSE_LOCATION pour la détermination précise et approximative des coordonnées.
  • iOS nécessite l'ajout des clés NSLocationWhenInUseUsageDescription et NSLocationAlwaysUsageDescription dans Info.plist.
  • La demande d'autorisation doit contenir une explication claire de la raison pour laquelle l'application a besoin des données de localisation.

Qu'est-ce que Location Permission ?

Location Permission est un mécanisme du système d'exploitation qui régule l'accès des applications aux données de localisation géographique de l'appareil. Sans le consentement explicite de l'utilisateur, l'application ne peut pas obtenir les coordonnées GPS, les données des réseaux Wi-Fi ou les informations des antennes relais.

Les plateformes mobiles Android et iOS implémentent leur propre système d'autorisations, mais la logique générale est la même : l'application déclare les autorisations nécessaires dans le manifeste ou le fichier de configuration, puis les demande à l'exécution. Selon Android Developers, 2024, à partir d'Android 10, toutes les autorisations de géolocalisation appartiennent à la catégorie dangereuse et nécessitent une demande à l'exécution.

La raison de cette approche est la protection de la vie privée des utilisateurs. Les données de localisation permettent de construire des itinéraires de déplacement, de déterminer les lieux de travail et de loisirs, ainsi que d'identifier la personne. Par conséquent, les deux plateformes exigent une explication transparente dans la boîte de dialogue de demande : l'application doit indiquer la raison pour laquelle elle a besoin d'accéder à la géolocalisation.

Pourquoi l'autorisation de géolocalisation est-elle nécessaire ?

L'autorisation de géolocalisation est nécessaire pour toute application dont la fonctionnalité dépend de la connaissance de la position physique de l'utilisateur. Cartes et navigation, applications de livraison, services météorologiques, réseaux sociaux avec géolocalisation — toutes ces catégories de logiciels nécessitent Location Permission.

Sans cette autorisation, l'application ne peut déterminer les coordonnées de l'appareil par aucune des méthodes disponibles : ni via le module GPS, ni via le scan Wi-Fi, ni via le positionnement par antennes relais. L'utilisateur peut révoquer l'autorisation à tout moment dans les paramètres système, après quoi l'application doit gérer correctement le refus.

Selon une étude du Pew Research Center (2024), environ 45 % des utilisateurs révoquent l'accès à la géolocalisation dans les applications qui ne l'utilisent pas pour leur fonctionnalité principale. Cela signifie que le développeur doit justifier clairement la demande et proposer des mécanismes alternatifs pour ceux qui ont refusé Location Permission.

Exigences légales

Le RGPD en Europe et la loi fédérale 152-FZ en Russie exigent l'obtention d'un consentement éclairé pour le traitement des données de localisation. L'application doit non seulement demander l'autorisation via la boîte de dialogue système, mais aussi fournir un avis séparé sur les finalités de la collecte des données. La violation de ces exigences entraîne des amendes allant jusqu'à 20 millions d'euros ou 4 % du chiffre d'affaires annuel de l'entreprise.

Conséquences de l'absence d'autorisation

Si l'application ne demande pas Location Permission ou si l'utilisateur refuse l'accès, le développeur doit prévoir un scénario alternatif. Pour une application de cartographie, il peut s'agir de la saisie manuelle de l'adresse ; pour une application de livraison — la sélection dans une liste d'adresses enregistrées ; pour un service météorologique — la détermination de la ville par adresse IP. Graceful degradation (dégradation progressive) est une pratique standard recommandée par Google et Apple.

Niveaux d'accès à la géolocalisation

Les niveaux d'accès à la géolocalisation diffèrent sur Android et iOS, bien que l'idée générale soit la même : plus l'accès est précis, plus les exigences imposées par la plateforme à l'application sont strictes.

Niveau d'accèsAndroidiOS
Lors de l'utilisationUniquement quand l'application est activeWhen In Use — seulement dans l'application
Arrière-planAlways — en permanence, même en arrière-planAlways — nécessite un examen supplémentaire App Store
ApproximatifACCESS_COARSE_LOCATION (précision jusqu'à 500 m)Avec option Precision = Off (iOS 14+)

ACCESS_FINE_LOCATION et ACCESS_COARSE_LOCATION sur Android

ACCESS_FINE_LOCATION donne accès à des coordonnées GPS précises avec une marge d'erreur de quelques mètres. Pour déclarer cette autorisation dans le manifeste, on utilise la constante android.permission.ACCESS_FINE_LOCATION. ACCESS_COARSE_LOCATION, quant à lui, fournit une localisation approximative avec une précision allant jusqu'à 500 mètres basée sur les données Wi-Fi et les antennes relais.

When In Use et Always sur iOS

When In Use permet à l'application de recevoir des coordonnées uniquement lorsqu'elle est ouverte à l'écran. Always donne accès à la géolocalisation même en arrière-plan, mais nécessite un examen obligatoire par l'App Store. À partir d'iOS 14, l'utilisateur peut désactiver séparément le positionnement précis pour chaque application via l'interrupteur Precision.

Demander Location Permission sur Android

La demande de Location Permission sur Android se fait en deux étapes : déclaration des autorisations dans le manifeste et demande à l'exécution dans le code. À partir d'Android 6.0 (API 23), toutes les autorisations dangereuses sont demandées pendant l'exécution de l'application, pas lors de l'installation.

Déclaration dans le manifeste

La première étape consiste à ajouter les autorisations nécessaires au fichier AndroidManifest.xml. Des constantes différentes sont utilisées pour le positionnement précis et approximatif.

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

Demande à l'exécution en Kotlin

Après la déclaration dans le manifeste, la boîte de dialogue système de demande d'autorisation doit être appelée dans le code de l'application. Regardons un exemple en Kotlin utilisant Activity Result API.

kotlin
private val locationPermissionRequest =
    registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { permissions ->
    when {
        permissions.getOrDefault(Manifest.permission.ACCESS_FINE_LOCATION, false) -> {
            // Autorisation accordée
            getLocation()
        }
        permissions.getOrDefault(Manifest.permission.ACCESS_COARSE_LOCATION, false) -> {
            // Localisation approximative uniquement
            getCoarseLocation()
        }
        else -> {
            // Utilisateur a refusé
            showLocationExplanation()
        }
    }
}

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

Gestion du refus et nouvelle demande

Si l'utilisateur refuse l'accès, le système Android ne permet pas d'afficher à nouveau la boîte de dialogue automatiquement. Le développeur doit appeler shouldShowRequestPermissionRationale pour afficher une explication préliminaire. En cas de refus répété avec le drapeau Never Ask Again, l'utilisateur doit être redirigé vers les paramètres système.

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()
        }
    }
}

Demander Location Permission sur iOS

La demande de Location Permission sur iOS nécessite d'ajouter des clés spéciales au fichier Info.plist et d'appeler des méthodes de la classe CLLocationManager. Apple accorde une attention particulière à la confidentialité, donc le texte d'explication dans la boîte de dialogue de demande doit être aussi spécifique que possible.

Configuration d'Info.plist

Pour demander la localisation sur iOS, il faut ajouter une ou les deux clés à Info.plist : NSLocationWhenInUseUsageDescription pour l'accès lors de l'utilisation et NSLocationAlwaysAndWhenInUseUsageDescription pour l'accès en arrière-plan. La valeur de chaque clé est une chaîne qui sera affichée à l'utilisateur dans la boîte de dialogue.

xml
<key>NSLocationWhenInUseUsageDescription</key>
<string>Votre application a besoin de votre position pour afficher les points à proximité sur la carte.</string>
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>Votre application a besoin d'un accès à la géolocalisation en arrière-plan pour suivre l'itinéraire.</string>

Demande en Swift

Dans le code Swift, la demande se fait via une instance de CLLocationManager. Selon le niveau d'accès requis, on appelle requestWhenInUseAuthorization ou requestAlwaysAuthorization.

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
        }
    }
}

Différence entre les plateformes

Contrairement à Android, iOS ne fournit pas au développeur de méthode pour vérifier shouldShowRequestPermissionRationale. Le système décide lui-même quand afficher l'explication. De plus, sur iOS, l'utilisateur ne peut modifier l'autorisation que via les paramètres système — l'application ne peut pas réafficher la boîte de dialogue système après que l'utilisateur a fait son choix. RequestAlwaysAuthorization demande d'abord When In Use, puis, après avoir obtenu le premier consentement, une boîte de dialogue séparée pour l'accès en arrière-plan.

Bonnes pratiques avec la géolocalisation

Les bonnes pratiques avec Location Permission aident à réduire les refus des utilisateurs et à respecter les exigences des magasins d'applications. Google et Apple ont publié des recommandations dont le respect augmente la probabilité d'approbation de l'application.

Demander l'autorisation dans son contexte

N'affichez pas la boîte de dialogue de demande de Location Permission immédiatement au lancement de l'application. Un utilisateur qui vient d'ouvrir l'application ne comprend pas encore pourquoi il doit fournir un accès à la géolocalisation. Contextual request signifie que la boîte de dialogue apparaît au moment où l'utilisateur a réellement besoin d'une fonction nécessitant une autorisation. Par exemple, en cliquant sur le bouton « Trouver le magasin le plus proche ».

Expliquer la raison à l'avance

Avant la boîte de dialogue système, affichez votre propre écran d'explication (pre-permission screen). Expliquez-y pourquoi l'application a besoin de la géolocalisation, quelles données sont collectées et comment elles seront utilisées. Après que l'utilisateur a cliqué sur « Autoriser » sur votre écran, affichez la boîte de dialogue système. Selon Appsflyer (2024), cette approche augmente le taux d'approbation de 25 à 35 %.

Ne pas demander Always inutilement

L'accès en arrière-plan à la géolocalisation n'est nécessaire que pour les applications qui fonctionnent en arrière-plan : navigateurs, trackers d'activité, applications de livraison. Si votre application n'a besoin de coordonnées que lorsque l'écran est ouvert, demandez When In Use. L'App Store rejettera l'application si Always n'est pas justifié fonctionnellement. Sur Android, l'accès en arrière-plan est en outre réglementé par l'autorisation ACCESS_BACKGROUND_LOCATION.

Foire aux questions

Que se passe-t-il si l'utilisateur refuse Location Permission ?

L'application doit gérer correctement le refus et proposer un scénario alternatif. Par exemple, la saisie manuelle de l'adresse ou la détermination de la ville par adresse IP. La boîte de dialogue système ne s'affiche plus — il faut rediriger l'utilisateur vers les paramètres.

Peut-on demander Location Permission sans explication ?

Techniquement, oui — la boîte de dialogue système peut être déclenchée sans écran préalable. Cependant, le taux d'approbation sans explication est de 30 à 40 %, alors qu'avec un écran préalable il est de 60 à 75 %. Apple et Google recommandent de toujours expliquer la raison de la demande.

Comment vérifier le statut de Location Permission sur Android ?

Utilisez ContextCompat.checkSelfPermission avec la constante Manifest.permission.ACCESS_FINE_LOCATION. La méthode retourne PERMISSION_GRANTED ou PERMISSION_DENIED, ce qui permet de déterminer le statut actuel sans appeler la boîte de dialogue système.

Quelle est la différence entre ACCESS_FINE_LOCATION et ACCESS_COARSE_LOCATION ?

ACCESS_FINE_LOCATION donne accès à des coordonnées GPS précises avec une erreur de 3 à 10 mètres. ACCESS_COARSE_LOCATION fournit une localisation approximative avec une précision allant jusqu'à 500 mètres basée sur le Wi-Fi et les antennes relais. Sur Android 12+, le développeur peut demander les deux autorisations simultanément.

Location Permission est-il nécessaire pour les scanners BLE ?

Sur Android, le scan des appareils BLE nécessite ACCESS_FINE_LOCATION ou ACCESS_COARSE_LOCATION, car les signaux BLE peuvent être utilisés pour la triangulation de position. Sur iOS, le BLE nécessite seulement l'autorisation Bluetooth — Location Permission n'est pas requis.

Résumé

  • Location Permission — un mécanisme clé de protection de la vie privée qui régule l'accès des applications à la géolocalisation de l'appareil.
  • Les niveaux d'accès incluent Lors de l'utilisation (When In Use) et Arrière-plan (Always) sur iOS, ainsi que Précis (ACCESS_FINE_LOCATION) et Approximatif (ACCESS_COARSE_LOCATION) sur Android.
  • Android nécessite la déclaration des autorisations dans le manifeste et une demande à l'exécution via Activity Result API à partir de l'API 23.
  • iOS nécessite l'ajout de clés dans Info.plist et l'appel des méthodes CLLocationManager avec indication obligatoire de la raison dans le texte de la demande.
  • Contextual request — une bonne pratique où la boîte de dialogue apparaît au moment du besoin, pas au lancement de l'application.
  • Pre-permission screen augmente le taux d'approbation de 25 à 35 % selon Appsflyer (2024).
  • Le refus de l'utilisateur nécessite une graceful degradation — un scénario alternatif sans utilisation de la géolocalisation.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi