Demander l'accès à la localisation en arrière-plan

Cette page aborde les sujets suivants:

  • Demander l'accès aux données de localisation en arrière-plan
  • Comment gérer la requête en fonction de la version du SDK cible de votre application.
  • Comment les préférences de l'utilisateur concernant la position approximative affectent la façon dont votre application obtient la position en arrière-plan
Figure 7 : La page des paramètres contient l'option Toujours autoriser qui accorde l'accès à la localisation en arrière-plan.

Le contenu de la boîte de dialogue des autorisations dépend de la version du SDK cible

Lorsqu'une fonctionnalité de votre application demande la localisation en arrière-plan sur un appareil équipé d'Android 10 (niveau d'API 29), la boîte de dialogue des autorisations du système contient l'option Toujours autoriser. Si l'utilisateur sélectionne cette option, la fonctionnalité a accès à la localisation en arrière-plan.

Cependant, sur Android 11 (niveau d'API 30) ou version ultérieure, la boîte de dialogue système ne contient pas l'option Toujours autoriser. Les utilisateurs doivent alors activer la localisation en arrière-plan sur une page de paramètres, comme le montre la figure 7.

Vous pouvez aider les utilisateurs à accéder à cette page de paramètres en suivant les bonnes pratiques concernant la demande d'autorisation d'accès à la localisation en arrière-plan. Le processus d'attribution de l'autorisation dépend de la version du SDK cible de votre application.

L'application cible Android 11 ou version ultérieure

Si l'autorisation ACCESS_BACKGROUND_LOCATION n'a pas été accordée à votre application et que shouldShowRequestPermissionRationale() renvoie true, présentez aux utilisateurs une UI éducative comprenant les éléments suivants:

  • Explication claire de la raison pour laquelle la fonctionnalité de votre application doit accéder à la localisation en arrière-plan.
  • Libellé visible par l'utilisateur de l'option de paramètres qui accorde l'accès à la localisation en arrière-plan (par exemple, Toujours autoriser sur la figure 7). Vous pouvez appeler getBackgroundPermissionOptionLabel() pour obtenir ce libellé. La valeur renvoyée par cette méthode est localisée en fonction des préférences linguistiques de l'appareil de l'utilisateur.
  • Option permettant aux utilisateurs de refuser l'autorisation. Même si les utilisateurs refusent l'accès à la localisation en arrière-plan, ils doivent être en mesure de continuer à utiliser votre application.
Les utilisateurs peuvent appuyer sur la notification système pour modifier les paramètres de localisation d'une application
Figure 8 : Notification rappelant à l'utilisateur qu'il a accordé à une application l'accès à la localisation en arrière-plan.

L'application cible Android 10 ou version antérieure

Lorsqu'une fonctionnalité de votre application doit accéder à la localisation en arrière-plan, une boîte de dialogue système est présentée à l'utilisateur. Cette boîte de dialogue contient une option permettant d'accéder aux options d'autorisation d'accès à la position de votre application sur une page de paramètres.

Tant que votre application respecte les bonnes pratiques pour demander les autorisations d'accéder à la position, aucune modification ne doit être effectuée pour accepter ce comportement.

L'utilisateur peut changer la précision de la localisation en arrière-plan

Si l'utilisateur demande une position approximative, les options qui lui sont proposées dans la boîte de dialogue des autorisations d'accès à la position s'appliquent également à la localisation en arrière-plan. En d'autres termes, si l'utilisateur accorde à votre application l'autorisation ACCESS_BACKGROUND_LOCATION, mais n'accorde qu'un accès à la position approximative au premier plan, votre application n'aura accès qu'à la position approximative en arrière-plan également.

Ressources supplémentaires

Pour en savoir plus sur les autorisations d'accéder à la position sur Android, consultez les ressources suivantes :

Ateliers de programmation

Vidéos

Exemples

  • Application exemple afin d'illustrer comment utiliser les autorisations d'accéder à la position