Solicita ubicación en segundo plano

En esta página, se analiza lo siguiente:

  • Cómo solicitar acceso a la ubicación en segundo plano
  • Cómo controlar la solicitud según la versión del SDK de destino de tu app
  • Cómo las preferencias del usuario para la ubicación aproximada afectan la forma en que tu app obtiene la ubicación en segundo plano
Figura 7: La página de configuración incluye una opción llamada Permitir todo el tiempo (Allow all the time), que otorga acceso a la ubicación en segundo plano.

El contenido del diálogo de los permisos depende de la versión del SDK de destino

Cuando una función de tu app solicita la ubicación en segundo plano, en un dispositivo que ejecuta Android 10 (nivel de API 29), el diálogo de permisos del sistema incluye una opción llamada Permitir todo el tiempo (Allow all the time). Si el usuario selecciona esta opción, la función en tu app obtiene acceso a la ubicación en segundo plano.

Sin embargo, en Android 11 (nivel de API 30) y versiones posteriores, el diálogo del sistema no incluye la opción Permitir todo el tiempo (Allow all the time). En su lugar, los usuarios deben habilitar la ubicación en segundo plano, en una página de configuración, como se muestra en la Figura 7.

Puedes ayudar a los usuarios a navegar hasta esa página de configuración siguiendo las prácticas recomendadas cuando solicites el permiso de acceso a la ubicación en segundo plano. El proceso para otorgar el permiso depende de la versión del SDK de destino de tu app.

La app está orientada a Android 11 o versiones posteriores

Si no se le otorgó el permiso ACCESS_BACKGROUND_LOCATION a tu app, y shouldShowRequestPermissionRationale() muestra true, enséñales a los usuarios una IU educativa que incluya lo siguiente:

  • Una explicación clara de por qué la función de tu app requiere acceso a la ubicación en segundo plano.
  • La etiqueta visible para el usuario de la opción de configuración que otorga la ubicación en segundo plano (por ejemplo, Permitir todo el tiempo en la figura 7). que puede obtenerse llamando al método getBackgroundPermissionOptionLabel(). El valor que se muestra de este método se localiza según la preferencia de idioma del dispositivo del usuario.
  • Una opción para que los usuarios rechacen el permiso. Si los usuarios rechazan el acceso a la ubicación en segundo plano, deberían poder seguir usando tu app.
Los usuarios pueden presionar la notificación del sistema para cambiar la configuración de la ubicación de una app.
Figura 8: Notificación que le recuerda al usuario que le otorgó a una app acceso a la ubicación en segundo plano.

La app está orientada a Android 10 o versiones anteriores

Cuando una función de tu app solicita acceso a la ubicación en segundo plano, los usuarios ven un diálogo del sistema. Este cuadro de diálogo incluye una opción para navegar hasta las opciones de permisos de ubicación de tu app en una página de configuración.

Siempre que tu app ya siga las prácticas recomendadas de solicitud de permisos de ubicación, no es necesario que hagas ningún cambio para admitir este comportamiento.

El usuario puede afectar la precisión de la ubicación en segundo plano

Si el usuario solicita la ubicación aproximada, las opciones del usuario en el diálogo de permisos de ubicación también se aplican a la ubicación en segundo plano. En otras palabras, si el usuario le otorga el permiso ACCESS_BACKGROUND_LOCATION a la app, pero brinda acceso solo a la ubicación aproximada en primer plano, la app también tendrá acceso solo a la ubicación aproximada en segundo plano.

Recursos adicionales

Para obtener más información sobre los permisos de ubicación en Android, consulta los siguientes materiales:

Codelabs

Videos

Ejemplos