Autorisations d'accéder à la position à trois états

Les autorisations de localisation trinaires d'Android 10 permettent aux utilisateurs de mieux contrôler la façon dont les applications accèdent à la position de leur appareil.

Sous Android 9 ou version antérieure, les utilisateurs faisaient des choix persistants lorsqu'ils accordaient l'accès à la position à des applications. Ils pouvaient Refuser ou Autoriser, ce dernier choix accordant aux applications un accès permanent (au premier plan et en arrière-plan). Les autorisations de position trinaires d'Android 10 offrent aux utilisateurs trois options pour autoriser une application à accéder à la position d'un appareil. Les utilisateurs sont invités à accorder ou à refuser le niveau d'autorisation lorsqu'une application le demande.

Un utilisateur voit normalement les trois choix présentés dans la figure 1. Toutefois, dans certains cas, seules deux de ces options sont requises. Dans ce cas, seules ces deux options s'affichent.

Écran des autorisations d'accéder à la position à trois états

Figure 1 : Écran des notifications trivalentes.

Voici les trois options:

  • Toujours autoriser: la position de l'appareil est connue par l'application, même lorsqu'elle n'est pas utilisée (en cours d'exécution en arrière-plan). Cela équivaut à autoriser l'autorisation dans Android 9 et versions antérieures.
  • Autoriser seulement si l'application est en cours d'utilisation: (au premier plan uniquement) la position de l'appareil n'est visible par l'application que lorsqu'elle est en cours d'exécution.
  • Refuser: la position de l'appareil n'est jamais visible par l'application. Cela revient à refuser l'autorisation sous Android 9 ou version antérieure.

Les utilisateurs sont invités à accorder l'autorisation d'accéder à la position lorsqu'une application la demande.

Une fois qu'un utilisateur a accordé l'autorisation Autoriser seulement si l'appli est en cours d'utilisation, une application peut demander une augmentation progressive de l'accès à Autoriser tout le temps. L'utilisateur voit une boîte de dialogue de requête (illustrée dans la figure 2). Si l'utilisateur sélectionne Conserver l'accès lorsque l'application est utilisée, lorsque l'application accède à la position de l'appareil lors de la prochaine utilisation, la boîte de dialogue propose l'option Conserver et ne plus demander.

La boîte de dialogue s'affiche dans les conditions suivantes pour les applications ciblant Android 10:

  • Au moins 24 heures après l'octroi de l'autorisation.
  • Uniquement si l'application reçoit des positions en arrière-plan.
  • Lorsque l'écran est allumé et que l'utilisateur n'utilise pas une autre application.
Autorisations incrémentielles

Figure 2. Autorisations incrémentielles.

Pour en savoir plus sur la demande d'autorisations, consultez Accès des applications à la position de l'appareil. Pour en savoir plus si votre application cible Android 9 ou version antérieure, consultez la section Poursuite de l'action déclenchée par l'utilisateur.

Impact

La fonctionnalité d'autorisations de localisation trivalente affecte toutes les applications qui ont besoin d'accéder à la position de l'appareil lorsqu'elles s'exécutent en arrière-plan. Elle est requise dans Android 10.

Vous pouvez modifier votre code, mais vous ne pouvez pas modifier ni personnaliser le comportement lié aux autorisations dans le framework.

Implémentation

Les autorisations de localisation trivalentes sont appliquées aux applications dans Android 10, quel que soit le SDK cible de l'application.

Pour savoir comment implémenter les cas d'utilisation de votre application (lors des mises à niveau), consultez la section Concevoir pour les scénarios de mise à niveau d'appareil de la documentation destinée aux développeurs.

Pour savoir comment activer l'accès pour différents cas d'utilisation (par exemple, en exigeant un accès à la position en arrière-plan pour des applications telles que Google Maps ou les services Google Play), consultez les sujets suivants sur la page Accès des applications à la position de l'appareil:

Accès à la position dans l'application

Les utilisateurs peuvent définir les autorisations d'accès de votre application sur Refuser ou Autoriser seulement si l'application est en cours d'utilisation s'ils le souhaitent. Pour l'autorisation d'accès à la position dans l'application, et pour toutes les applications propriétaires et tierces, indiquez les niveaux de contrôle utilisateur indiqués dans le tableau suivant.

Type d'autorisation que l'application doit demander Options utilisateur à fournir
L'application ne demande que des autorisations de premier plan Autoriser seulement si l'appli est utilisée
Refuser
L'application demande toujours l'autorisation (au premier plan et en arrière-plan) Autoriser tout le temps
Autoriser seulement si l'appli est utilisée
Refuser
Toutes les applications avec des requêtes d'accès aux données de localisation Autoriser seulement si l'appli est en cours d'utilisation

Ces autorisations s'appliquent à toutes les requêtes de localisation. Les applications disposant des autorisations Autoriser seulement si l'appli est en cours d'utilisation ne sont pas autorisées à effectuer des analyses Wi-Fi ou de réseau mobile en arrière-plan.

Sous Android 11 ou version antérieure, les applications disposant de l'autorisation Autoriser seulement si l'appli est en cours d'utilisation ne sont pas autorisées à effectuer des analyses Bluetooth en arrière-plan. À partir d'Android 12, les applications disposant des autorisations Autoriser seulement si l'appli est en cours d'utilisation peuvent obtenir des résultats de balayage Bluetooth en définissant la valeur de l'attribut android:usesPermissionFlags sur neverForLocation. Pour en savoir plus, consultez la section L'application ne dérive pas de l'emplacement physique.

Mises à niveau de l'OS

Lors de la mise à niveau de l'OS vers Android 10, les autorisations d'accéder à la position de l'application se traduisent comme suit:

  • Activé devient Autoriser seulement pendant l'utilisation.
  • Désactivé reste désactivé (Refuser).
  • L'accès à la position pré-accordé devient l'autorisation Autoriser seulement si l'appli est en cours d'utilisation.