Como se describe en las páginas de solicitud de permisos de ubicación y prácticas recomendadas de privacidad, las apps solo deben solicitar el tipo de permiso de ubicación que sea fundamental para la función para el usuario y divulgarlo de forma clara. La mayoría de los casos prácticos solo requieren la ubicación cuando el usuario interacciona con la app. Si esta requiere acceder a la ubicación en segundo plano, como cuando se implementan geovallados, asegúrate de que sea fundamental para la funcionalidad principal de la app, ofrezca beneficios claros al usuario y se haga de una manera que resulte evidente para este.
Lista de tareas para el acceso a la ubicación en segundo plano
Usa la siguiente lista de tareas para identificar la posible lógica de acceso a la ubicación en segundo plano:
En el manifiesto de tu app, verifica el permiso
ACCESS_COARSE_LOCATIONy el permisoACCESS_FINE_LOCATION. Verifica que la app requiera esos permisos de ubicación.- Si tu app se orienta a Android 10 (nivel de API 29) o versiones posteriores, también verifica el permiso
ACCESS_BACKGROUND_LOCATION. Verifica que la app tenga una función que lo requiera.
- Si tu app se orienta a Android 10 (nivel de API 29) o versiones posteriores, también verifica el permiso
Busca el uso de APIs de acceso a la ubicación, como la API de Fused Location Provider, la API de Geofencing o la API de
LocationManager, dentro de tu código, como en las siguientes construcciones:- Servicios en segundo plano
WorkManageroJobSchedulertareas- Operaciones
AlarmManager - Intents pendientes que se invocan desde un widget de la app
Si la app usa un SDK o una biblioteca que accede a la ubicación, dicho acceso se atribuye a la app. Para determinar si un SDK o una biblioteca necesitan acceso a la ubicación, consulta la documentación de la biblioteca.
Cómo evaluar el acceso a la ubicación en segundo plano
Si ves que la app accede a la ubicación en segundo plano, considera realizar las siguientes acciones:
- Evalúa si el acceso a la ubicación en segundo plano es fundamental para la funcionalidad principal de la app.
Si no necesitas el acceso a la ubicación en segundo plano, quítalo.
Si tu app se orienta a Android 10 (nivel de API 29) o versiones posteriores, quita el permiso
ACCESS_BACKGROUND_LOCATIONdel manifiesto de la app. Cuando quitas este permiso, el acceso permanente a la ubicación deja de ser una opción para la app en dispositivos que ejecutan Android 10.Asegúrate de que el usuario sepa que tu app está accediendo a la ubicación en segundo plano. Esto es particularmente importante en los casos que no son obvios para los usuarios.
Si es posible, refactoriza la lógica de acceso a la ubicación para que solicites la ubicación solo cuando la actividad de tu app sea visible para los usuarios.
Actualizaciones limitadas a la ubicación en segundo plano
Si el acceso a la ubicación en segundo plano es fundamental para la app, ten en cuenta que Android, a fin de preservar la duración de la batería, configura los límites de ubicación en segundo plano en dispositivos que ejecutan Android 8.0 (nivel de API 26) y versiones posteriores. En estas versiones de Android, si la app se ejecuta en segundo plano, puede recibir actualizaciones de ubicación solo algunas veces por hora. Para obtener más información, consulta Límites de ubicación en segundo plano.
Recursos adicionales
Para obtener más información sobre el uso de la ubicación en segundo plano, consulta los siguientes materiales:
Videos
Cómo encontrar posibles usos de la ubicación en segundo plano
Ejemplos
En el ejemplo de ubicación en segundo plano, se muestran las prácticas recomendadas para acceder a la ubicación cuando la app está en segundo plano.