Permisos de ubicación de tres estados

Los permisos de ubicación Tristate 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 tomaron decisiones persistentes al otorgar acceso a la ubicación a 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 Tristate en Android 10 brindan a los usuarios tres opciones para permitir que una aplicación acceda a la ubicación de un dispositivo. Se solicita a los usuarios que concedan o denieguen el nivel de permiso cuando una aplicación lo solicite.

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 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 es equivalente a permitir el permiso 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.

Se solicita a los usuarios que concedan permiso de acceso a la ubicación cuando las aplicaciones lo soliciten.

Una vez que un usuario otorga el permiso de acceso Permitir solo mientras la aplicación está en uso , una aplicación puede solicitar un aumento incremental en el acceso a 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 Mantener el acceso mientras está en uso , cuando la aplicación acceda a la ubicación del dispositivo en el próximo uso, el cuadro de diálogo ofrece la opción de Mantener y no volver a preguntar .

El cuadro de diálogo aparece bajo estas condiciones para aplicaciones destinadas 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 más información sobre si su aplicación tiene como objetivo 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 se requiere en Android 10.

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

Implementación

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

Para obtener información sobre cómo implementar los casos de uso de su aplicación (sobre 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 solicitar 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 solicitar Opciones de usuario para proporcionar
La aplicación solo solicita permisos de primer plano Permitir solo mientras se usa la aplicación
Negar
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
Negar
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 permitido Wi-Fi en segundo plano ni escaneos de celulares.

En Android 11 o versiones anteriores, las aplicaciones con Permitir solo mientras se usan los permisos de la aplicación no permiten escaneos de Bluetooth en segundo plano. A partir de 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 obtiene 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 acuerdo con lo siguiente:

  • On se convierte en Permitir solo mientras está en uso .
  • Apagado permanece apagado ( Denegar ).
  • El acceso a la ubicación otorgado previamente se convierte en Permitir solo mientras está en uso .