En esta página, se describe cómo funciona la detección de la hora y la zona horaria en Android. Esta incluye cómo Android detecta automáticamente las zonas horarias y las zonas horarias, la configuración opciones para fabricantes de dispositivos y datos sobre pruebas.
Descripción general de las zonas horarias y los horarios
Para determinar la hora local de un usuario para que se muestre en ubicaciones como el estado , Android lleva el registro de dos estados relacionados, pero independientes:
- El tiempo Unix actual del tiempo
- La zona horaria actual
El tiempo Unix actual y la zona horaria actual son estados para todo el dispositivo, lo que significa que los comparten todos los usuarios de un dispositivo.
El tiempo Unix actual del ciclo de entrenamiento no es un valor fijo. Se actualiza automáticamente reflejan el paso del tiempo. Además del paso de tiempo normal, la Se ajusta el tiempo Unix de un dispositivo si se detecta que es incorrecto, por ejemplo, cuando un dispositivo se queda sin energía.
La zona horaria actual determina el ajuste que se realizará para convertir la del tiempo Unix actual en una hora local. Por ejemplo, durante el verano en Los Ángeles, Ángeles, el dispositivo resta 7 horas del tiempo Unix actual y, en invierno, se restan 8 horas.
Para admitir estos cálculos de hora local, todos los dispositivos Android tienen un base de datos de todas las reglas de zonas horarias globales. Para obtener más información sobre las reglas de zonas horarias, consulta Reglas de Zonas horarias.
Cuando un usuario se desplaza a una nueva ubicación que usa una zona horaria diferente, el No es necesario ajustar el tiempo del tiempo Unix actual, pero el usuario generalmente quiere para ver la hora local en lugar de la hora en su ubicación anterior. Cambiando la zona horaria actual garantiza que se aplique el desplazamiento correcto a la zona horaria actual Tiempo Unix para mostrar la hora local correcta de la nueva ubicación.
AOSP permite a los usuarios controlar de forma independiente si la hora y la zona horaria automáticamente mediante los siguientes mecanismos.
- Detección automática de la hora: Garantiza que el dispositivo tenga la y el tiempo Unix actual.
- Detección automática de la zona horaria: Garantiza que el dispositivo tenga la zona horaria actual.
Detección de hora automática
En esta sección, se proporciona una descripción general del servicio time_detector
que administra
detección automática de la hora, controles de usuario, opciones de configuración y pruebas
más detalles.
El servicio time_detector
El
time_detector
servicio, presente en dispositivos que ejecutan Android 10 o versiones posteriores, administra el tiempo automático
de detección de intrusiones. Ajusta el tiempo Unix actual del dispositivo según sea necesario cuando
la detección automática de la hora está habilitada.
El servicio time_detector
siempre se encuentra en uno de estos dos estados: incierto o
cierto. El estado cierto o incierto del servicio se determina
mediante las sugerencias de horario que recibe de varias fuentes.
Cuando el servicio time_detector
es seguro, lo que significa que recibió un
con información del tiempo Unix, anula el tiempo Unix actual
si la sugerencia de horario es diferente del tiempo Unix actual.
Cuando time_detector
es incierto, no anula la hora actual. El
el estado incierto suele significar que el servicio time_detector
no recibió tiempo
sugerencias. El servicio time_detector
también se vuelve incierto si las sugerencias
que recibió se consideran demasiado antiguos para usarse. La antigüedad de las sugerencias es
consideradas porque los ajustes que usan las antiguas sugerencias de tiempo Unix
reloj en tiempo real transcurrido del dispositivo, que se supone que es impreciso durante
períodos extensos.
Para establecer automáticamente el tiempo Unix actual, un dispositivo tiene varios
fuentes que puede usar. En este documento, se denominan orígenes. El
El servicio time_detector
trata las secuencias de sugerencias como distintas en función de lo siguiente:
su origen.
El servicio time_detector
es un servicio con estado, lo que significa que mantiene un registro de
la sugerencia más reciente de cada origen. Se sugieren nuevas
time_detector
si un origen tiene información de tiempo Unix más reciente
disponibles. El servicio time_detector
vuelve a evaluar las sugerencias nuevas y existentes
y actualiza el estado del dispositivo cuando se reciben sugerencias.
Aunque la hora UTC se acuerda a nivel internacional, existen varias razones por las cuales establecer el tiempo Unix actual no siempre es sencillo para un Dispositivo Android:
- El tiempo Unix es un sistema de cronología un poco diferente al horario UTC. Para realizar una conversión entre ambos, se necesita conocer cuándo ocurren los segundos bisiestos cómo las manejan los orígenes.
- Los orígenes pueden estar disponibles solo en determinados momentos o en determinadas a las circunstancias. Por ejemplo, si el origen requiere conectividad de red, Es posible que solo esté disponible cuando el dispositivo esté conectado a Internet.
- Los orígenes pueden ser imprecisos o imprecisos, o bien tener errores. Para ejemplo, si una torre de telefonía celular no está rastreando el "tiempo universal" correctamente, el origen de telefonía podría proporcionar sugerencias de hora imprecisas.
- Es posible que se introduzcan errores cuando se obtiene el tiempo Unix. Por ejemplo, una demora en la red, el almacenamiento en búfer o la programación de procesos pueden causar el tiempo Unix para que no sea preciso.
- El reloj de referencia que se usa para ajustar una sugerencia para el tiempo transcurrido desde es posible que la sugerencia que se recibió no sea precisa.
Hay dos orígenes principales de detección de hora configurados para el uso predeterminado en AOSP:
- Red: Usa la red. y servidores de hora del protocolo NTP.
- Telefonía: Usa la telefonía de identidad de red y zona horaria (NITZ). indicadores.
Tanto los orígenes de telefonía como los de red requieren conectividad a redes externas, que no siempre están disponibles.
A partir de Android 12, Android también admite lo siguiente: los siguientes orígenes, que no están configurados para su uso de forma predeterminada:
- GNSS: Utiliza el GPS. para obtener la hora de una fuente de GNSS.
- Externo: Genérico que permite a los fabricantes de dispositivos integrar su propia fuente de Tiempo Unix.
Configuración de horario
Los usuarios pueden habilitar la detección automática de la hora en Sistema > Fecha y hora app de Configuración del AOSP.
Figura 1: Detección automática de la hora en Configuración.
En la siguiente tabla, se describen los controles del usuario para la detección de hora en el AOSP App de Configuración.
*En Android 11 y versiones anteriores, este parámetro de configuración tiene la etiqueta Usar hora proporcionada por la red |
|||
Ubicación de la Configuración de AOSP | Nombre de la configuración del AOSP | Alcance | Comportamiento |
---|---|---|---|
Sistema > Fecha y hora | Establecer la hora automáticamente* | Todos los usuarios | Un botón de activación Cuando está activado, el dispositivo es responsable de detectar el Unix actual ciclo de entrenamiento. Cuando está desactivada, los usuarios reciben controles para configurar la manualmente la hora del dispositivo. |
Cuando el usuario ingresa la hora manualmente, ingresa su hora local, no el tiempo Unix tiempo. El tiempo Unix actual se calcula usando la zona horaria actual para derivar un tiempo Unix.
Configuración
Los fabricantes de dispositivos pueden configurar el servicio time_detector
de varias maneras.
como qué orígenes usar y cómo priorizar los indicadores que provienen de ellos.
Priorización del origen
A partir de Android 12, los fabricantes de dispositivos pueden cambiar la
core/res/res/values/config.xml
para especificar la hora
de origen para incluir en la detección automática de la hora y la prioridad en la
time_detector
considera estos orígenes.
En el caso de los dispositivos que ejecutan Android 11 o versiones anteriores, la prioridad de origen está codificada en ["telephony", "network"]
, lo que significa que se priorizan las sugerencias de telefonía.
arriba de las sugerencias de red.
La configuración predeterminada del AOSP es la siguiente:
<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list
take precedence over lower ones.
See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
<string-array name="config_autoTimeSourcesPriority">
<item>network</item>
<item>telephony</item>
</string-array>
En Android 12, las sugerencias de red y telefonía son configurados como orígenes para usarlos de forma predeterminada. Las sugerencias de hora de red son priorizada por encima de las sugerencias de horarios de telefonía. Los fabricantes de dispositivos pueden cambiar el orden de los orígenes para volver al comportamiento en Android 11 o versiones anteriores en los que se da una mayor prioridad a la telefonía.
De forma predeterminada, si la sugerencia válida de mayor prioridad coincide con el
La hora del reloj del sistema actual es de un par de segundos y la hora del dispositivo no
cambiarse. Esto es para evitar crear trabajo para las apps instaladas que escuchan el
ACTION_TIME_CHANGED
.
Los valores de origen permitidos son los siguientes:
Límites permitidos
Android 14 introduce un límite superior de tiempo
sugerencias que recibió el servicio time_detector
. Si el dispositivo admite
En procesos de 32 bits, el framework establece un límite de tiempo superior para evitar que se use el dispositivo
una sugerencia de horario que podría activar el problema Y2038.
En Android 12, se introdujo un límite de tiempo inferior que se usa para
valida las sugerencias de horarios que recibe el servicio time_detector
. Cuanto menor
El valor de límite de tiempo que se usa para las sugerencias automáticas se establece a partir de la marca de tiempo de compilación.
Esto funciona con el principio de que un tiempo válido no puede ser anterior al tiempo
se compiló la imagen del sistema. Si una sugerencia de tiempo es anterior al límite inferior, el
El servicio time_detector
descarta la sugerencia porque no puede ser válida si
si la marca de tiempo de compilación es correcta.
En los dispositivos que ejecutan Android 11 o versiones anteriores, el servicio time_detector
no
validar las sugerencias entrantes de época de Unix
Tiempo de depuración y pruebas
En esta sección, se proporciona información sobre cómo depurar y probar el comportamiento de
el servicio time_detector
y otros componentes que comparten todos los orígenes
Interactúa con el servicio time_detector
Para ver la configuración del servicio time_detector
y el estado de la
Servicio time_detector
, usa:
adb shell cmd time_detector dump
Si quieres ver comandos adicionales para depurar y probar la detección de la zona horaria, usa el siguiente comando:
adb shell cmd time_detector help
El resultado de ayuda también describe las propiedades del servicio device_config que se pueden
se usa para afectar el comportamiento de time_detector
para las pruebas o en producción.
Para obtener más información, consulta
Configura un dispositivo con el servicio device_config.
Para validar la detección automática de la hora, los verificadores deben conocer los orígenes
time_detector
servicio está usando. El siguiente es un ejemplo del resultado de
el comando adb shell cmd time_detector dump
, con la información sobre
el origen y el estado actuales del servicio en negrita:
$ adb shell cmd time_detector dump
TimeDetectorStrategy:
mLastAutoSystemClockTimeSet=null
mEnvironment.isAutoTimeDetectionEnabled()=true
mEnvironment.elapsedRealtimeMillis()=23717241
mEnvironment.systemClockMillis()=1626707861336
mEnvironment.systemClockUpdateThresholdMillis()=2000
mEnvironment.autoTimeLowerBound()=2021-07-19T07:48:05Z(1626680885000)
mEnvironment.autoOriginPriorities()=[network,telephony]
Time change log:
...
Telephony suggestion history:
...
Network suggestion history:
...
Gnss suggestion history:
...
External suggestion history:
...
La información se puede interpretar de la siguiente manera:
Clave | Valor |
---|---|
mEnvironment.isAutoTimeDetectionEnabled() |
Si la detección automática de la hora está habilitada. |
mEnvironment.autoTimeLowerBound() |
Es el límite inferior actual que se usa para validar las sugerencias de horario. |
mEnvironment.autoOriginPriorities() |
Los orígenes en uso y el orden de prioridad. |
El registro de cambios de hora indica las ocasiones en las que el servicio time_detector
cambió el tiempo Unix actual del dispositivo.
La información del historial de sugerencias indica las sugerencias que hizo para cada origen.
Detección automática de la zona horaria
En esta sección, se proporciona una descripción general del servicio time_zone_detector
que
administra la detección automática de la zona horaria, los controles de usuario en la configuración, la telefonía y
la detección de la zona horaria de la ubicación y los detalles de las pruebas.
El servicio time_zone_detector
El
time_zone_detector
servicio, presente en dispositivos que ejecutan Android 11 o versiones posteriores, administra el tiempo automático
detección de zonas. Ajusta la zona horaria actual del dispositivo según sea necesario cuando
Se habilitó la detección automática de la zona horaria.
Cuando la detección automática de la zona horaria está habilitada, time_zone_detector
puede estar en
uno de dos estados: incierto y cierto.
Cuando el servicio time_zone_detector
se encuentra en ese estado, significa que
El servicio de time_zone_detector
recibió información sólida sobre la zona horaria, lo que
puede hacer que anule la zona horaria actual. Cuando es incierto, este
significa que no recibió información
o solo de confianza baja, lo que
significa que no anulará la zona horaria actual.
Algunos estados del servicio time_zone_detector
pueden incluir aquellos en los que
time_zone_detector
no tiene información sobre la zona horaria para usar o dónde tiene
varias zonas horarias para elegir. Los estados son los siguientes:
- Se ingresa un estado determinado con cero zonas horarias cuando el dispositivo
en algún lugar sin zona horaria, por ejemplo, en aguas internacionales o
en el área en cuestión. Este estado es similar a un estado incierto, pero indica
que
time_zone_detector
no necesita realizar acciones adicionales para intentar determinar la zona horaria. - Se ingresa un determinado estado con varias zonas horarias donde hay
condiciones de ambigüedad o fronteras. En este estado, si la zona horaria actual es
una de las zonas horarias con las que
time_zone_detector
está seguro, el La zona horaria actual se mantiene como está. De lo contrario, una de las horas zonas. Esto le da atime_zone_detector
un elemento de atractivo. si el usuario seleccionó manualmente su zona horaria con anterioridad o como el que el dispositivo se acerque a un borde.
El estado cierto o incierto del servicio time_zone_detector
se determina por
sugerencias de zona horaria que envía un algoritmo
En general, las sugerencias vienen en dos tipos que coinciden estrechamente con los estados posibles
de time_zone_detector
: incierto e incierto. Los siguientes son
Ejemplos de tipos de sugerencias:
tipo =
uncertain
,zoneIds = []
- El algoritmo no sabe cuál es la zona horaria.
tipo =
certain
,zoneIds = ["Europe/London"]
- El algoritmo está seguro de que la zona es Europa/Londres.
tipo =
certain
,zoneIds = []
`- El algoritmo es seguro, pero no hay un ID de zona asociado con la ubicación actual.
tipo =
certain
,zoneIds = ["America/Denver", "America/Phoenix"]
- El algoritmo está seguro de que la respuesta es una de dos zonas pero no puede elegir entre "América/Denver" y “America/Phoenix”.
El servicio time_zone_detector
trata las secuencias de sugerencias como distintas
en función de su algoritmo. Según el algoritmo, las sugerencias también podrían
contienen metadatos que indican la certeza del algoritmo.
El servicio time_zone_detector
es un servicio con estado, lo que significa que mantiene un registro.
de la sugerencia más reciente de cada algoritmo. Se envían nuevas sugerencias
al servicio time_zone_detector
si ya no se recibe una sugerencia anterior
correcto; es decir, si un algoritmo ahora tiene una sugerencia diferente o si tiene
perdió la capacidad de detectar la zona horaria. El servicio time_zone_detector
reevalúa las sugerencias nuevas y existentes, y actualiza el estado del dispositivo cuando
y se reciben sugerencias.
Android admite dos algoritmos para la detección de la zona horaria:
- Telefonía
- Ubicación
Por lo general, el servicio time_zone_detector
usa un solo algoritmo para
determinar la zona horaria. Cuando el algoritmo de ubicación es compatible con un dispositivo,
el algoritmo que utiliza el dispositivo se determina según la
Los parámetros de configuración de la zona horaria que establece el usuario. Cuando
el algoritmo en uso deja de determinar la zona horaria, time_zone_detector
no suele usar sugerencias de un algoritmo diferente. Sugerencias
asociados con algoritmos que no están en uso pueden conservarse en la memoria
time_zone_detector
, pero no se usan, a menos que el algoritmo
cambios. Cuando el usuario cambia la configuración de la detección automática de la zona horaria
y el algoritmo cambia, la sugerencia más reciente disponible para el
nuevo algoritmo.
Para obtener detalles sobre la situación en la que se usan varios algoritmos para determinar la zona horaria, consulta Modo de resguardo de telefonía.
Modo de resguardo de telefonía
En dispositivos con Android 13 y versiones posteriores, la
El servicio time_zone_detector
admite el modo de resguardo de telefonía. Este modo
permite que Android use sugerencias de detección de telefonía
la detección de ubicación no puede detectar la zona horaria ni dónde la detección de ubicación
tarda más en detectar la zona horaria que la detección por telefonía.
El modo de resguardo de telefonía se aplica a los dispositivos en los que se usan tanto la telefonía como detección son compatibles y donde el usuario haya habilitado la opción Usar la ubicación para configurar Zona horaria en Configuración de la zona horaria. Se habilitó el modo automáticamente cuando se reinicia un dispositivo o cuando el modo de avión está inhabilitado.
En Android 14 y versiones posteriores, el resguardo de telefonía puede ser que se activan APIs de LTZP status Reporting, es decir, si un LTZP informa que es incierto y su capacidad para detectar la ubicación o la zona horaria se degrada por el entorno, el modo de resguardo activa.
En el modo de resguardo de telefonía, el servicio de time_zone_detector
usa telefonía
sugerencias, como si la detección de ubicación estuviera inhabilitada hasta que el algoritmo de ubicación
hace una determinada sugerencia. Después de recibir una sugerencia determinada, el servicio de
el modo de resguardo está inhabilitado y las sugerencias de ubicación se usan de forma exclusiva.
Para obtener detalles de configuración para el modo de resguardo de telefonía, consulta Configuración de detección de zona horaria.
Configuración de zona horaria
Los usuarios pueden habilitar y configurar la configuración de la detección automática de la zona horaria en la app de Configuración del AOSP.
Figura 2: Detección automática de la zona horaria en Configuración.
En la siguiente tabla, se describen los controles de usuario para la detección de zona horaria del app de Configuración del AOSP.
*En Android 11 y versiones anteriores, este parámetro de configuración está etiquetado Usar la zona horaria proporcionada por la red |
|||
Ubicación de la Configuración de AOSP | Nombre de la configuración del AOSP | Alcance | Comportamiento |
---|---|---|---|
Sistema > Fecha y hora | Establecer la zona horaria automáticamente* | Todos los usuarios | Un botón de activación Cuando está activada, el dispositivo es responsable de detectar la hora actual zona. Cuando está desactivada, los usuarios reciben controles para establecer la zona horaria manualmente. |
Sistema > Fecha y hora | Usar ubicación para establecer la zona horaria | Usuario actual | Un botón de activación Disponible a partir de Android 12. Este botón de activación es se muestra solo cuando el dispositivo admite la detección de la zona horaria de la ubicación. Para conocer los cambios que se implementaron en Android 14, consulta Dispositivos que solo admiten la detección de la zona horaria de la ubicación. |
Ubicación | Usar ubicación | Usuario actual | Un botón de activación Permite o impide el uso de la ubicación del dispositivo en general. El valor es relevante si el dispositivo admite la detección de la zona horaria de la ubicación. |
A continuación, se proporciona una descripción general del comportamiento del dispositivo para la zona horaria detección según la configuración elegida por el usuario:
[Fecha y hora] Establecer zona horaria automáticamente: DESACTIVADA
- El usuario debe seleccionar la zona horaria de forma manual.
[Fecha y hora] Establecer zona horaria automáticamente: ACTIVADA
[Ubicación] Usar ubicación: DESACTIVADO
- Las señales de telefonía se utilizan para detectar la zona horaria.
[Ubicación] Usar ubicación: ACTIVADO
[Fecha y hora] Usar la ubicación para configurar la zona horaria: ACTIVADA
- La ubicación se usa para detectar la zona horaria.
[Fecha y hora] Usar la ubicación para establecer la zona horaria: DESACTIVADA
- Las señales de telefonía se usan para detectar la hora zona.
Dispositivos para varios usuarios
Como varias de las configuraciones involucradas se limitan al usuario actual, el el comportamiento de detección de la zona horaria de un dispositivo puede cambiar cuando el usuario actual cambios en un dispositivo Android multiusuario.
El botón de activación Usar la ubicación para configurar la zona horaria se limita al usuario actual. no está restringido por una política de dispositivo, lo que significa que los usuarios siempre pueden cambiar incluso cuando el botón de activación Establecer zona horaria automáticamente está desactivado o si Los controles de hora y zona horaria están restringidos por el controlador de política de dispositivo.
Dispositivos que solo admiten el algoritmo de detección de la zona horaria de la ubicación
En esta sección, se describe el comportamiento de los dispositivos que solo admiten la ubicación. de codificador-decodificador.
Android 14 y versiones posteriores
- Los usuarios no ven la opción Usar ubicación en la Configuración del AOSP. La app y el dispositivo se comportará como si la opción Usar ubicación estuviera habilitada.
- El valor de la configuración de
SettingsProvider
centrada en el usuariolocation_time_zone_detection_enabled
se ignora. Este valor registra la preferencia del usuario en otros tipos de dispositivos.
Android 12 o Android 13
- La opción Usar ubicación está visible para los usuarios en la app de Configuración del AOSP. los usuarios pueden inhabilitar la opción. Si la opción está deshabilitada, el el dispositivo no detectará la zona horaria automáticamente.
Comportamiento cuando se cambia hacia la detección automática y desde ella
Cuando el usuario cambia la detección de la zona horaria de manual a automática,
Es posible que time_zone_detector
ya esté seguro de la zona horaria actual. Si es así,
Como el usuario habilita la detección automática, es posible que se cambie la zona horaria del dispositivo.
al mismo tiempo para que coincida con la opinión del servicio de time_zone_detector
.
De forma similar, cuando el usuario realiza un cambio en la Configuración que resulta en un cambio en
el algoritmo actual del servicio time_zone_detector
, time_zone_detector
ya recibieron sugerencias para el nuevo algoritmo, así que el tiempo
es posible que se modifique para que coincida con la opinión del servicio de time_zone_detector
de inmediato.
Detección de zona horaria de telefonía
La detección de la zona horaria de la telefonía usa señales de telefonía para determinar la hora actual zona horaria. Para obtener más información, consulta Zona horaria de telefonía detección.
Detección de la zona horaria de la ubicación
La detección de la zona horaria de la ubicación está disponible en Android 12 o una superior. Es una función opcional de detección automática de la zona horaria que permite dispositivos móviles usen su ubicación para determinar la zona horaria actual.
El servicio location_time_zone_manager
, que se introdujo en
Android 12 se ejecuta en
servidor del sistema y contiene el código responsable de enviar la información
sugerencias de algoritmo al servicio time_zone_detector
.
Para obtener más información, consulta
Detección de la zona horaria de la ubicación.
Consideraciones sobre la adopción de funciones
Esta sección describe aspectos de la función de detección de la zona horaria de la ubicación para ayudan al fabricante a determinar si debe adoptar la función en un dispositivo.
Compara la telefonía y la detección de ubicación
La siguiente tabla muestra una comparación de las ventajas y desventajas de mediante la ubicación en vez de señales de telefonía para la detección de la zona horaria.
Detección de telefonía | Detección de ubicación | |
---|---|---|
Precisión | Varía según el país. Depende del MCC y de la precisión y disponibilidad de NITZ. |
Depende de la configuración de la función o de los componentes de los complementos. La precisión suele variar en función de los siguientes factores:
|
Capacidad de actualización | La detección de telefonía depende de los archivos que se incluyen en el campo Time Módulo de datos de zona (com.android.tzdata APEX). | Depende de la configuración de la función o de los componentes de los complementos. Por lo general, la capacidad de actualización depende de si el dispositivo usa el servidor o el cliente datos de mapas de zona horaria. Nota: Los datos del mapa de zona horaria no se incluyen en la columna Time Módulo de datos de zona que se usa para actualizar la copia de TZDB y otros horarios de Android la información de la zona. Los fabricantes de dispositivos también deben considerar la coherencia de la versión entre los las reglas de zona horaria y los datos del mapa de zona horaria. |
Uso de energía | Bajo consumo de energía o ninguno | Depende de la configuración de ubicación del usuario, de los complementos que se utilizan y, por lo general, a qué otras apps solicitan la ubicación. |
Disponibilidad | Solo para dispositivos telefónicos. Por lo general, requiere una SIM que funcione. | La detección de la ubicación depende de los proveedores de ubicación disponibles. |
Privacidad del usuario
La zona horaria preferida de un usuario generalmente se determina por su ubicación ubicación. La ubicación es un dato sensible. Los usuarios pueden estar preocupados por conocimiento de su ubicación que se comparte como parte de la detección de la zona horaria. Sin relación con la detección de la zona horaria, todas las aplicaciones que se ejecuten en un dispositivo pueden leer la la zona horaria actual del dispositivo sin solicitar un permiso de Android las apps pueden inferir una idea imprecisa de la ubicación del dispositivo a partir de esta información.
Más concretamente, la detección de la zona horaria puede funcionar mediante la detección pasiva o activa significa:
- Pasiva: Algo en el entorno del dispositivo le indica al dispositivo zona horaria para usar en ese entorno.
- Activa: El dispositivo tiene que calcular la zona horaria por sí mismo y según las necesidades de los usuarios de privacidad y su consentimiento, obtiene la la ubicación del dispositivo para hacerlo. Luego, puede compartir su ubicación con de Google Cloud. Consulta el debate a continuación para obtener detalles sobre la privacidad y el consentimiento del usuario.
La detección pasiva, como la del algoritmo de telefonía, no tiene restricciones implicaciones de privacidad para los usuarios.
La detección activa, como con el algoritmo de ubicación, implica determinar la la ubicación del dispositivo, con la que los usuarios podrían no estar de acuerdo, y la ubicación podría enviarse a través de una red para determinar el ID de zona horaria.
El enfoque de Android sobre la privacidad del usuario para la detección de la zona horaria le brinda al usuario la capacidad para inhabilitar individualmente los algoritmos que se espera que estén activos. Además, el código de la plataforma del AOSP no se ocupa directamente de la ubicación en sí: la detección de la ubicación y la asignación de la ubicación a los ID de zona horaria se dejan para el complemento componentes configurados por los fabricantes de dispositivos.
Para obtener más detalles sobre las funciones de privacidad del usuario, consulta Zona horaria de la ubicación detección.
Configuración
Los fabricantes de dispositivos pueden configurar el servicio time_zone_detector
para cambiar
su comportamiento. En esta sección, se describen las opciones de configuración
el comportamiento del servicio de time_zone_detector
. Para los detalles de configuración de
los algoritmos de telefonía y detección de zona horaria, consulta
Detección de zona horaria de telefonía
y
Detección de la zona horaria de la ubicación.
La configuración básica del AOSP se encuentra
frameworks/base/core/res/res/values/config.xml
Clave de configuración | Valor de AOSP | Descripción |
---|---|---|
config_supportTelephonyTimeZoneFallback |
true |
Cuando true , time_zone_detector usa la telefonía
modo de resguardo. Está disponible para Android 13
y versiones posteriores.
|
Modificación del comportamiento predeterminado del dispositivo
En el AOSP, la detección automática de la zona horaria se habilita de forma predeterminada con el siguiente elemento:
La configuración de auto_time_zone
se estableció en true
. Cómo inhabilitar la detección automática de la hora
de forma predeterminada, establece el valor de def_auto_time_zone
definido en
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
a false
.
Cuando se restablece una copia de seguridad desde otro dispositivo, el framework actualiza el valor
del parámetro de configuración auto_time_zone
de forma predeterminada. Si quieres asegurarte de que este
no se restablece a partir de una copia de seguridad, incluye auto_time_zone
en
Array restore_blocked_global_settings
definido en
frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml
Depuración y pruebas de zona horaria
En esta sección, se proporciona información sobre cómo depurar y probar el comportamiento de
el servicio time_zone_detector
y otros componentes que comparten todos
con algoritmos criptográficos eficaces.
Configura un dispositivo con el servicio device_config
El servicio device_config
es un mecanismo que se usa en Android para configurar
Comportamiento modificable con valores que normalmente se extraen de un servidor remoto
por código de propiedad (no AOSP). Cuando uses valores device_config
para pruebas,
especialmente durante pruebas manuales de larga duración, el dispositivo puede sincronizar el
marcas, lo que restablecería las marcas y borraría los valores establecidos para las pruebas.
En Android 12 o versiones posteriores, para evitar la marca temporalmente sincronización, usa:
adb shell cmd device_config set_sync_disabled_for_tests persistent
Para restablecer la sincronización de marcas después de las pruebas, usa el siguiente comando:
adb shell cmd device_config set_sync_disabled_for_tests none
Después de restablecer la sincronización de marcas, reinicia el dispositivo.
Para obtener más información, usa $ adb shell cmd device_config help
.
Interactúa con el servicio time_zone_detector
Para ver la configuración y el estado de time_zone_detector
de la
Servicio time_zone_detector
, usa:
adb shell cmd time_zone_detector dump
Si quieres ver comandos adicionales para depurar y probar la detección de la zona horaria, usa el siguiente comando:
adb shell cmd time_zone_detector help
En el resultado de ayuda, también se describen las propiedades de servicio de device_config
que pueden
usarse para modificar el comportamiento del servicio time_zone_detector
para las pruebas
o en producción. Para obtener más información, consulta
Configura un dispositivo con el servicio device_config.
Para validar la detección de la zona horaria, los verificadores deben saber qué algoritmo
time_zone_detector
está usando. Para comprender e influir en el algoritmo actual
de time_zone_detector
, usa una de las siguientes opciones:
- Realiza una verificación visual en la IU de Configuración. Para obtener más información, consulta Configuración de la zona horaria:
Usa la línea de comandos mediante adb:
- Para volcar el estado
time_zone_detector
, usaadb shell cmd time_zone_detector dump
- Para modificar la configuración del dispositivo, usa otros comandos
time_zone_detector
. Para obtener más información, usaadb shell cmd time_zone_detector help
.
- Para volcar el estado
El siguiente es un ejemplo del resultado del comando adb shell cmd
time_zone_detector dump
, con la información sobre el valor
el algoritmo y el estado del servicio en negrita:
$ adb shell cmd time_zone_detector dump
TimeZoneDetectorStrategy:
mEnvironment.getCurrentUserId()=0
mEnvironment.getConfiguration(currentUserId)=ConfigurationInternal{mUserId=0, mUserConfigAllowed=true, mTelephonyDetectionSupported=true, mGeoDetectionSupported=true, mAutoDetectionEnabled=true, mLocationEnabled=true, mGeoDetectionEnabled=true}
[Capabilities=TimeZoneCapabilitiesAndConfig{mCapabilities=TimeZoneDetectorCapabilities{mUserHandle=UserHandle{0}, mConfigureAutoDetectionEnabledCapability=40, mConfigureGeoDetectionEnabledCapability=40, mSuggestManualTimeZoneCapability=30}, mConfiguration=TimeZoneConfiguration{mBundle=Bundle[{geoDetectionEnabled=true, autoDetectionEnabled=true}]}}]
mEnvironment.isDeviceTimeZoneInitialized()=true
mEnvironment.getDeviceTimeZone()=Europe/London
Time zone change log:
Manual suggestion history:
...
Geolocation suggestion history:
...
Telephony suggestion history:
...
La información se puede interpretar de la siguiente manera:
Clave | Valor |
---|---|
mUserConfigAllowed |
Si el usuario no puede controlar la configuración de fecha y hora el Controlador de política de dispositivo. |
mTelephonyDetectionSupported |
Indica si el dispositivo tiene detección de zona horaria por telefonía. |
mGeoDetectionSupported |
Indica si el dispositivo admite la detección de la zona horaria de la ubicación. Este es el eficaz según la configuración y la presencia de al menos un LTZP. |
mAutoDetectionEnabled |
Indica si la detección automática de la zona horaria está habilitada. |
mLocationEnabled |
El botón de activación de la ubicación principal. |
mGeoDetectionEnabled |
El interruptor del algoritmo: false indica el algoritmo de telefonía.
y true indica el algoritmo de ubicación. |
La información del historial de sugerencias indica qué sugerencias se hicieron mediante Configuración (manual) y los algoritmos de telefonía y ubicación.