Google se compromete a impulsar la igualdad racial para las comunidades afrodescendientes. Obtén información al respecto.

Detección de zona horaria de ubicación

La detección de zona horaria de ubicación, disponible en Android 12 o superior, es una función de detección automática de zona horaria opcional que permite a los dispositivos usar su ubicación y datos de mapas de zona horaria para determinar la zona horaria.

Localización de detección de zona horaria es un mecanismo alternativo para la detección de zona horaria de telefonía . Debido a que esta función no requiere telefonía, esta función se puede admitir en dispositivos de varios factores de forma además de los dispositivos de telefonía móvil.

La función de detección de zona horaria de ubicación consta de los siguientes componentes en la plataforma AOSP:

  • Lógica de detección de zona horaria en el servidor del sistema.
  • Una opción accesible para el usuario en Configuración, introducida en Android 12, para permitir a los usuarios seleccionar entre los mecanismos de detección de zona horaria de telefonía y ubicación.
  • Un sistema de complemento para componentes que realizan la detección de ubicación y el mapeo de zona horaria. Un plug-in se llama un proveedor de ubicación de zona horaria (LTZP) y no puede ser de hasta dos de ellos en un dispositivo.
  • Una implementación de LTZP de referencia.
  • Anfitrión herramientas para generar un conjunto de datos de referencia de los datos de OpenStreetMap que se pueden utilizar con la implementación de referencia.

Privacidad del usuario

La detección de zona horaria de ubicación incluye las siguientes funciones de privacidad del usuario:

  • Los usuarios pueden desactivar la detección de zona horaria de ubicación en cualquier momento.
  • Las sugerencias de zona horaria derivadas de la ubicación no se comparten entre los usuarios de un dispositivo.
  • Los usuarios pueden controlar la detección de la ubicación para la detección de zona horaria de forma explícita a través de la pantalla de configuración de fecha y hora. Los usuarios no tienen que otorgar permisos explícitamente a través de un cuadro de diálogo de permisos.
  • La información de ubicación del dispositivo no se transmite a los servicios de la plataforma Android. En su lugar sucede lo siguiente:

    • Los servicios de detector de zona horaria solo reciben ID de zona horaria mediante el LTZP, no la ubicación del dispositivo. Esta es la API mínima necesaria para admitir la detección de zona horaria de ubicación.
    • El funcionamiento de los LTZP individuales se deja a la decisión de los integradores de sistemas. Las implementaciones de LTZP pueden usar datos de mapas de zonas horarias que se encuentran completamente en el dispositivo Android, aprovechar los servidores o usar un enfoque híbrido.

Comportamiento de la función

El time_zone_detector servicio determina cuándo cambiar de zona horaria actual del dispositivo basado en sugerencias que recibe de los orígenes de detección.

El location_time_zone_manager servicio es responsable de la generación de sugerencias para el origen localización de time_zone_detector . El location_time_zone_manager servicio se ejecuta en el proceso de servidor del sistema.

El location_time_zone_manager servicio no contiene ninguna lógica de detección de zona horaria. Es responsable de administrar el ciclo de vida de uno o dos complementos denominados Proveedores de zona horaria de ubicación (LTZP).

Cuando no se necesita la detección de zona horaria de ubicación, los LTZP no se inician. Esto significa que el sistema de detección de zona horaria de ubicación no solicita a los LTZP que rastreen la ubicación del dispositivo a menos que se les solicite explícitamente. Algunas de las razones de este comportamiento incluyen las siguientes:

  • A diferencia de las señales de telefonía que se reciben de forma pasiva como parte de las operaciones telefónicas normales, la ubicación se puede solicitar activamente a los proveedores de ubicación de Android y podría consumir energía adicional.
  • La configuración de la ubicación está determinada por el usuario y Android debe respetar la configuración actual del usuario.
  • Obtener la ubicación del dispositivo es sensible a la privacidad.

Además, el location_time_zone_manager servicio hace una sugerencia incierta (si es necesario) cuando el usuario cambia la corriente para evitar el intercambio de información de ubicación entre los usuarios.

Como resultado de estas opciones, generalmente se necesitan unos segundos después de cambiar el origen actual a la ubicación, o después de cambiar el usuario actual, antes de que se pueda detectar la zona horaria. Esto también depende de las implementaciones de los LTZP que se utilicen.

La implementación de detección de zona horaria de ubicación AOSP permite hasta dos LTZP, un LTZP primario y uno secundario como se define aquí:

LTZP primario
Se ejecuta en todo momento cuando el usuario ha permitido que se ejecute la función de detección de zona horaria de ubicación.
LTZP secundario
Se ejecuta si los informes LTZP primarias que la zona horaria es incierto, informa de un fallo permanente, o el tiempo de espera durante la inicialización. Paradas si el LTZP primaria someta una cierta sugerencia.

Como se muestra en la Figura 1, los time_zone_detector servicios recibe sugerencias de zona horaria a partir del origen de telefonía o ubicación. El origen de la ubicación recibe sugerencias del LTZP primario o secundario.

Flujo de información de detección de zona horaria de ubicación

Figura 1. Localización de zona horaria flujo de información de detección.

Requisitos de configuración del dispositivo

Para admitir la función de zona horaria de ubicación, los dispositivos deben configurarse con LTZP que el dispositivo pueda usar. Los dispositivos requieren que al menos un LTZP esté habilitado y configurado para que la detección de zona horaria de ubicación sea funcional y visible para los usuarios en Configuración.

Configuración del dispositivo

Esta sección describe cómo los fabricantes de dispositivos pueden configurar dispositivos para admitir la detección de zona horaria de ubicación.

La configuración AOSP base es en frameworks/base/core/res/res/values/config.xml :

Clave de configuración Valor AOSP Descripción
config_enableGeolocationTimeZoneDetection true Este es el control maestro para la función de detección de zona horaria de ubicación.

La función es compatible de forma predeterminada en AOSP. Se debe habilitar o configurar al menos un LTZP para que la función esté disponible para los usuarios.

Establecer el valor en falso deshabilita la función por completo para un pequeño ahorro de memoria.
config_enablePrimaryLocationTimeZoneProvider false Esto habilita el LTZP primario.
config_primaryLocationTimeZoneProviderPackageName Establezca esto en el nombre del paquete de la aplicación donde se puede encontrar el servicio del proveedor principal.
config_enableSecondaryLocationTimeZoneProvider false Esto habilita el LTZP secundario.
config_secondaryLocationTimeZoneProviderPackageName Establezca esto en el nombre del paquete de la aplicación donde se puede encontrar el servicio del proveedor secundario.

Por defecto, la configuración AOSP tiene la config_enableGeolocationTimeZoneDetection tecla SET para true , lo que permite el apoyo a la función de detección de zona horaria ubicación. La función no es visible para los usuarios inicialmente porque AOSP no incluye una configuración LTZP por defecto. Sin embargo, con esta configuración predeterminada, los fabricantes de dispositivos pueden habilitar y simular LTZP desde la línea de comandos para realizar pruebas. (Para obtener más información, consulte la depuración y pruebas .)

Configuración e implementación del proveedor de zona horaria de ubicación

Al configurar un LTZP, leer las instrucciones en el código fuente para frameworks/base/core/java/android/service/timezone/TimeZoneProviderService.java . Los comentarios de Javadoc proporcionan detalles sobre el servicio, los permisos necesarios y otra configuración.

Para configurar un proveedor de zona horaria de ubicación, los fabricantes de dispositivos deben elegir un proceso de aplicación para alojar el servicio de LTZP. Tener un proceso dedicado para un LTZP es una sobrecarga alta; idealmente, el proceso de la aplicación elegido es uno que se esté ejecutando en todo momento, como el servidor del sistema.

En los dispositivos con los componentes del sistema modulares (módulos), considere la interacción entre los datos geográficos usados por el LTZP y las reglas de zona horaria (tzdb) realizado en el módulo de datos de zona horaria ( com.android.tzdata ). Es probable que las actualizaciones de uno sin actualizaciones del otro causen problemas de sesgo de versión. Para obtener más información, consulte las consideraciones de adopción de funciones .

Proveedor de zona horaria de ubicación de referencia de AOSP

AOSP contiene una ubicación de zona horaria de referencia implementación del proveedor bajo packages/modules/GeoTZ . Esta implementación de referencia utiliza las API de AOSP para determinar la ubicación del dispositivo y utiliza un archivo de datos en el dispositivo para asignar la ubicación a un conjunto de ID de zona horaria.

Con el código fuente se incluye un conjunto de datos de referencia derivados de otros proyectos de código abierto. Para más detalles, véase README.md los diversos archivos LICENSE y.

Depuración y prueba

La siguiente sección describe los comandos de shell para depurar y probar la función de detección de zona horaria de ubicación.

Interactuar con el servicio location_time_zone_manager

Cuando el origen ubicación está soportado en un dispositivo con Android 12 o superior, Android instancia el location_time_zone_manager servicio en el momento del arranque.

Para volcar el estado actual de la location_time_zone_manager , utilice:

adb shell cmd location_time_zone_manager dump

Para ver un amplio conjunto de opciones de línea de comando para ayudar con las pruebas, use:

adb shell cmd location_time_zone_manager help

El resultado de la ayuda también describe los device_config propiedades de servicio que se pueden utilizar para afectar el comportamiento de la time_zone_detector para probar o en la producción. Para obtener más información, consulte Configuración de un dispositivo que utiliza el servicio device_config .

Las implementaciones de LTZP también pueden proporcionar su propio soporte de depuración o prueba. Por ejemplo, puede utilizar el siguiente comando para depurar el LTZP de referencia de AOSP cuando está registrado en el proceso del servidor del sistema.

adb shell dumpsys activity service android/com.android.timezone.location.provider.OfflineLocationTimeZoneProviderService