Utilisation de la localisation en arrière-plan

Android 14 (Android U) a introduit de nouvelles restrictions pour les applications accédant à la position de l'utilisateur en arrière-plan. Pour limiter ces modifications, le SDK Navigation a été mis à jour dans la version 5.3.2 afin de mieux gérer l'accès aux données de localisation en arrière-plan. Nous vous recommandons également de mettre à jour votre implémentation pour que votre application continue d'avoir accès aux données de localisation les plus précises.

Impact des modifications apportées à Android 14 sur le SDK Navigation

Lorsque vous appelez startGuidance() dans votre application, le service de premier plan commence à afficher des notifications utilisateur pour la navigation détaillée. La navigation détaillée dépend de la possibilité d'accéder à la position de l'utilisateur afin de mettre à jour l'itinéraire et d'afficher le bon guidage visuel et audio. À partir d'Android 14, l'accès à la position exacte de l'utilisateur en arrière-plan nécessite l'autorisation de l'utilisateur. Par défaut, si une application n'a pas l'autorisation de l'utilisateur pour accéder à la localisation en arrière-plan et tente de démarrer un service de premier plan pour les mises à jour de la position, le système génère une erreur SecurityException, ce qui entraîne le plantage de l'application.

Comment le SDK Navigation atténue ce problème

À partir de la version 5.3.2, le SDK Navigation gère ce SecurityException sans affecter l'application, ce qui permet à la navigation de continuer à s'exécuter en arrière-plan. De plus, le SDK Navigation inclut l'autorisation ACCESS_BACKGROUND_LOCATION dans son AndroidManifest. De cette façon, votre application n'a pas besoin de déclarer l'autorisation elle-même, car la fusion Gradle la gère. Toutefois, si aucune notification n'est affichée avant que l'application ne passe en arrière-plan, le SDK Navigation s'appuie sur le système pour fournir les mises à jour de la position. Ces mises à jour du système peuvent ne pas être fréquentes ou précises, et nuire à l'expérience de navigation. C'est pourquoi nous vous recommandons de demander également aux utilisateurs l'accès à la localisation en arrière-plan.

Ce que les développeurs d'applications peuvent faire pour améliorer la précision de la localisation pour la navigation

Vous pouvez améliorer la précision du signal de localisation utilisé par le SDK Navigation en mettant à jour votre application pour inviter les utilisateurs à accéder à la localisation en arrière-plan. L'invite doit expliquer aux utilisateurs comment cette autorisation permettra d'améliorer la précision de la position et l'expérience de navigation lorsque l'application s'exécute en arrière-plan.

exemple de boîte de dialogue
d'autorisation

Pour savoir comment demander aux utilisateurs l'accès à leur position, consultez Demander des autorisations d'accéder à la position | Capteurs et localisation | Développeurs Android.