Uso de la ubicación en segundo plano

Android 14 (Android U) presentó nuevas restricciones para las apps que acceden a la ubicación del usuario en segundo plano. Para ayudar a mitigar estos cambios, el SDK de Navigation se actualizó en la versión 5.3.2 a fin de administrar mejor el acceso a la ubicación en segundo plano. También te recomendamos que actualices tu implementación para asegurarte de que tu app siga teniendo acceso a los datos de ubicación más precisos.

Cómo afectan los cambios en Android 14 al SDK de Navigation

Cuando invocas startGuidance() en tu app, el servicio en primer plano comienza a mostrar notificaciones al usuario para la navegación paso a paso. La navegación paso a paso depende de poder acceder a la ubicación del usuario para actualizar la ruta y mostrar las indicaciones visuales y auditivas correctas. A partir de Android 14, se requiere el permiso del usuario para acceder a la ubicación precisa del usuario en segundo plano. De forma predeterminada, si una app no tiene el permiso del usuario para acceder a la ubicación en segundo plano e intenta iniciar un servicio en primer plano para realizar actualizaciones de ubicación, el sistema arroja una SecurityException, lo que hace que la app falle.

Cómo el SDK de Navigation mitiga este problema

A partir de la versión 5.3.2, el SDK de Navigation controla este SecurityException sin afectar la app, lo que permite que la navegación continúe ejecutándose en segundo plano. Además, el SDK de Navigation incluye el permiso ACCESS_BACKGROUND_LOCATION en su AndroidManifest. De esta manera, no es necesario que tu app declare el permiso en sí, ya que la combinación de Gradle lo controlará. Sin embargo, si no se muestra una notificación al usuario antes de que la app pase a segundo plano, el SDK de Navigation dependerá del sistema para proporcionar actualizaciones de ubicación. Es posible que estas actualizaciones del sistema no sean frecuentes o precisas, y generen una experiencia de navegación deficiente. Por este motivo, te recomendamos que también solicites a los usuarios acceso a la ubicación en segundo plano.

Qué pueden hacer los desarrolladores de apps para mejorar la precisión de la ubicación para la navegación

Para mejorar la precisión de la señal de ubicación que usa el SDK de Navigation, actualiza la app para solicitar a los usuarios acceso a la ubicación en segundo plano. En ella, se debe explicar a los usuarios cómo otorgar el permiso mejorará la precisión de la ubicación y su experiencia de navegación cuando la app se ejecute en segundo plano.

diálogo de permiso de muestra

Si quieres obtener más información para solicitar acceso a la ubicación a los usuarios, consulta Cómo solicitar permisos de ubicación | Sensores y ubicación | Desarrolladores de Android.