Permisos de ubicación de tres estados

Los permisos de ubicación de tres estados en Android 10 brindan a los usuarios más control sobre cómo las aplicaciones acceden a las ubicaciones de sus dispositivos.

En Android 9 y versiones anteriores, los usuarios tomaban decisiones persistentes al otorgar acceso a la ubicación de las aplicaciones. Podían Denegar o Permitir , el último de los cuales daba acceso a las aplicaciones todo el tiempo (en primer plano y en segundo plano). Los permisos de ubicación de tres estados en Android 10 brindan a los usuarios tres opciones para permitir que una aplicación acceda a la ubicación de un dispositivo. A los usuarios se les solicita que otorguen o denieguen el nivel de permiso cuando una aplicación lo solicita.

Un usuario normalmente ve las tres opciones presentadas en la Figura 1. Sin embargo, hay casos de uso en los que solo se requieren dos de estas opciones y, en tales casos, solo se muestran esas dos.

Tristate location permissions screen
Figura 1. Pantalla de notificaciones de Tristate

Estas son las tres opciones:

  • Permitir todo el tiempo : la aplicación conoce la ubicación del dispositivo incluso cuando la aplicación no está en uso (ejecutándose en segundo plano). Esto equivale a permitir permisos en Android 9 y versiones anteriores.
  • Permitir solo mientras la aplicación está en uso : (solo en primer plano) la ubicación del dispositivo solo es visible para la aplicación cuando se está ejecutando activamente.
  • Denegar : la ubicación del dispositivo nunca es visible para la aplicación. Esto es lo mismo que denegar el permiso en Android 9 y versiones anteriores.

A los usuarios se les solicita que otorguen permiso de acceso a la ubicación cuando las aplicaciones solicitan el permiso.

Una vez que un usuario otorga permiso de acceso Permitir solo mientras la aplicación está en uso , una aplicación puede solicitar un aumento incremental en el acceso para Permitir todo el tiempo . El usuario ve un cuadro de diálogo de solicitud (que se muestra en la Figura 2 ). Si el usuario selecciona Conservar el acceso mientras está en uso , cuando la aplicación acceda a la ubicación del dispositivo en el siguiente uso, el cuadro de diálogo ofrece la opción Conservar y no volver a preguntar .

El cuadro de diálogo aparece en estas condiciones para las aplicaciones orientadas a Android 10:

  • Después de al menos 24 horas de otorgado el permiso.
  • Solo si la aplicación recibe ubicaciones en segundo plano.
  • Cuando la pantalla está encendida y el usuario no está utilizando otra aplicación.
Incremental permissions
Figura 2. Permisos incrementales

Para obtener más información sobre cómo solicitar permisos, consulte Acceso de la aplicación a la ubicación del dispositivo . Para obtener detalles si su aplicación está orientada a Android 9 y versiones anteriores, consulte Continuación de la acción iniciada por el usuario .

Impacto

La función de permisos de ubicación de tres estados afecta a cualquier aplicación que necesite acceso a la ubicación del dispositivo mientras se ejecuta en segundo plano y es obligatoria en Android 10.

Puede cambiar su código, pero no puede alterar ni personalizar el comportamiento relacionado con los permisos en el marco.

Implementación

Los permisos de ubicación de tres estados se aplican a las aplicaciones en Android 10 independientemente del SDK de destino de la aplicación.

Para obtener información sobre cómo implementar los casos de uso de su aplicación (en actualizaciones), consulte la sección Diseño para escenarios de actualización de dispositivos en la documentación para desarrolladores.

Para ver cómo habilitar el acceso para diferentes casos de uso (como requerir acceso a la ubicación en segundo plano para aplicaciones como Google Maps o los servicios de Google Play), consulte estos temas en la página Acceso de la aplicación a la ubicación del dispositivo :

Acceso a la ubicación en la aplicación

Los usuarios pueden cambiar los permisos de acceso de su aplicación a Denegar o Permitir solo mientras usan la aplicación si así lo desean. Para el permiso de acceso a la ubicación en la aplicación y para todas las aplicaciones propias y de terceros, proporcione los niveles de control de usuario que se indican en la siguiente tabla.

La aplicación de tipo de permiso debe solicitarse Opciones de usuario para proporcionar
La aplicación solo solicita permisos en primer plano Permitir solo mientras se usa la aplicación
Denegar
La aplicación solicita permiso siempre (en primer plano y en segundo plano) permitir todo el tiempo
Permitir solo mientras se usa la aplicación
Denegar
Todas las aplicaciones con solicitudes de acceso a la ubicación Permitir solo mientras se usa la aplicación

Estos permisos se aplican a todas las solicitudes de ubicación. Las aplicaciones con Permitir solo mientras se usan los permisos de la aplicación no tienen Wi-Fi en segundo plano ni escaneos celulares.

En Android 11 o versiones anteriores, las aplicaciones con Permitir solo mientras se usan los permisos de la aplicación no pueden realizar escaneos de Bluetooth en segundo plano. Desde Android 12, las aplicaciones con Permitir solo mientras usan los permisos de la aplicación pueden obtener resultados de escaneo de Bluetooth configurando el valor del atributo android:usesPermissionFlags en neverForLocation . Para obtener más detalles, consulte La aplicación no deriva la ubicación física .

Actualizaciones del sistema operativo

En una actualización del sistema operativo a Android 10, los permisos de ubicación de la aplicación se traducen de la siguiente manera:

  • Activado se convierte en Permitir solo mientras está en uso .
  • Desactivado permanece desactivado ( Denegar ).
  • El acceso a la ubicación otorgado previamente se convierte en el permiso previo a la concesión Permitir solo mientras esté en uso .