In questa pagina viene descritto come funziona il rilevamento di ora e fuso orario su Android. Questo include le modalità con cui Android rileva automaticamente i fusi orari, opzioni per i produttori di dispositivi e informazioni sui test.
Panoramica di fusi orari e orari
Per determinare l'ora locale di un utente da mostrare in posizioni quali lo stato Android tiene traccia di due stati correlati ma indipendenti:
- L'ora corrente dell'epoca Unix
- Il fuso orario attuale
L'attuale epoca Unix e il fuso orario corrente sono stati a livello di dispositivo, vale a dire che sono condivise da tutti gli utenti di un dispositivo.
L'ora dell'epoca Unix attuale non è un valore fisso. Si aggiorna automaticamente riflettono il passare del tempo. Oltre al normale passaggio del tempo, la durata L'ora dell'epoca Unix di un dispositivo viene regolata se risulta errata, ad esempio ad esempio in seguito a un'interruzione dell'alimentazione di un dispositivo.
Il fuso orario attuale determina la regolazione da apportare per convertire l'ora corrente dell'epoca Unix nell'ora locale. Ad esempio, durante l'estate a Los Angeles Angeles, il dispositivo sottrae 7 ore dall'ora attuale dell'epoca Unix e in durante l'inverno sottrae 8 ore.
Per supportare il calcolo dell'ora locale, tutti i dispositivi Android dispongono di un database di tutte le regole dei fusi orari globali. Per ulteriori informazioni sulle regole relative al fuso orario, consulta Regole del fuso orario.
Quando un utente si reca in una nuova località che utilizza un fuso orario diverso, non è necessario regolare l'ora di Unix attuale, ma l'utente in genere vuole per vedere l'ora locale anziché l'ora della località precedente. Modifica il fuso orario attuale assicura che a quella corrente venga applicato l'offset corretto Ora Unix per visualizzare l'ora locale corretta per la nuova posizione.
AOSP consente agli utenti di controllare in modo indipendente se l'ora e il fuso orario sono automaticamente mediante i meccanismi indicati di seguito.
- Rilevamento automatico dell'ora: assicura che il dispositivo abbia l'aggiornamento corretto l'ora attuale dell'epoca Unix.
- Rilevamento automatico del fuso orario: assicura che il dispositivo abbia l'indirizzo corretto fuso orario attuale.
Rilevamento automatico dell'ora
Questa sezione fornisce una panoramica del servizio time_detector
che gestisce
rilevamento automatico del tempo, controlli utente, opzioni di configurazione e test
i dettagli.
Il servizio time_detector
La
time_detector
presente sui dispositivi con Android 10 o versioni successive, gestisce il tempo automatico
il rilevamento automatico. Regola l'attuale epoca di Unix del dispositivo in base alle necessità quando
il rilevamento automatico dell'ora sia abilitato.
Il servizio time_detector
è sempre in uno dei due stati seguenti: incerto o
certo. Lo stato certo o incerto del servizio viene determinato
da suggerimenti di orario che riceve da varie fonti.
Quando il servizio time_detector
è certo, ovvero ha ricevuto un
con informazioni temporali dell'epoca Unix, sostituisce l'epoca Unix corrente
ora se il suggerimento di orario è diverso dall'ora dell'epoca Unix corrente.
Quando il valore di time_detector
è incerto, non sostituisce l'ora attuale. La
stato incerto di solito significa che il servizio time_detector
non ha ricevuto tempo
suggerimenti. Inoltre, il servizio time_detector
non conosce se i suggerimenti
ricevute sono considerate troppo vecchie per essere utilizzate. L'età dei suggerimenti è
perché le modifiche che utilizzano i suggerimenti di tempo della precedente epoca Unix si basano
orologio in tempo reale trascorso sul dispositivo, che si presume non sia preciso
per lunghi periodi.
Per stabilire automaticamente l'ora dell'epoca Unix corrente, un dispositivo ha varie
le fonti che può utilizzare. In questo documento vengono chiamate origini. La
Il servizio time_detector
considera le sequenze di suggerimenti come distinte in base a
la loro origine.
Il servizio time_detector
è stateful, il che significa che conserva un record delle
il suggerimento più recente fatto da ogni origine. Vengono aggiunti nuovi suggerimenti
time_detector
se un'origine ha informazioni più recenti sull'epoca di Unix
disponibili. Il servizio time_detector
rivaluta i suggerimenti nuovi ed esistenti
e aggiorna lo stato del dispositivo
quando ricevono suggerimenti.
Anche se l'ora UTC è concordata a livello internazionale, ci sono vari motivi per cui stabilire l'ora corrente dell'epoca Unix non è sempre semplice Dispositivo Android:
- L'ora Unix epoch è un sistema di cronometraggio leggermente diverso rispetto all'ora UTC. La conversione da un lato all'altro richiede la conoscenza di quando si verificano i secondi intercalari e e come vengono gestiti dalle origini.
- Le origini potrebbero essere disponibili solo in determinati orari o sotto determinati circostanze. Ad esempio, se l'origine richiede la connettività di rete, potrebbe essere disponibile solo quando il dispositivo è connesso a internet.
- Le origini potrebbero essere imprecise, imprecise o potrebbero presentare errori. Per Ad esempio, se una torre cellulare di telefonia non monitora il "tempo universale" correttamente, l'origine della telefonia potrebbe fornire suggerimenti orari imprecisi.
- Potrebbero essere introdotte inesattezze durante il recupero dell'ora dell'epoca Unix. Ad esempio, un ritardo di rete, un buffering o una pianificazione dei processi che l'epoca di Unix non sia precisa.
- L'orologio di riferimento utilizzato per regolare un suggerimento per il tempo trascorso a partire da il suggerimento ricevuto potrebbe non essere preciso.
Esistono due origini di rilevamento dell'ora principali configurate da usare per impostazione predefinita in AOSP:
- Rete: utilizza la rete server di riferimento orario NTP (Time Protocol).
- Telefonia: utilizza la telefonia NITZ (Network Identity and Time Zone) e indicatori.
Sia le origini della telefonia che quelle delle reti richiedono la connettività a reti esterne, che non sono sempre disponibili.
A partire da Android 12, Android supporta anche le le seguenti origini, che non sono configurate per l'uso per impostazione predefinita:
- GNSS: utilizza il GPS. fornitore di servizi di localizzazione per ottenere un orario da un'origine GNSS.
- Esterni: Generico che consente ai produttori di integrare la propria fonte di dell'epoca Unix.
Impostazioni temporali
Gli utenti possono attivare il rilevamento automatico del tempo in Sistema > Data e ora nel App Impostazioni AOSP.
Figura 1. Rilevamento automatico dell'ora nelle Impostazioni.
La tabella seguente descrive i controlli utente per il rilevamento del tempo nell'AOSP App Impostazioni.
*Su Android 11 e versioni precedenti, l'impostazione è denominata Usa ora fornita dalla rete |
|||
Posizione impostazioni AOSP | Nome impostazioni AOSP | Ambito | Comportamento |
---|---|---|---|
Sistema > Data e ora | Imposta l'ora automaticamente* | Tutti gli utenti | Un pulsante di attivazione/disattivazione. Quando è acceso, il dispositivo è responsabile del rilevamento dell'attuale Unix dell'epoca. Se questa opzione è disattivata, gli utenti hanno a disposizione dei controlli per impostare la l'ora del dispositivo manualmente. |
Quando l'utente inserisce manualmente l'ora, inserisce l'ora locale, non l'epoca in Unix. nel tempo. L'ora dell'epoca Unix attuale viene calcolata utilizzando il fuso orario attuale per ricavare un tempo di epoca Unix.
Configurazione
I produttori di dispositivi possono configurare il servizio time_detector
in vari modi,
ad esempio quali origini utilizzare e come
assegnare la priorità agli indicatori.
Priorità dell'origine
A partire da Android 12, i produttori di dispositivi possono modificare
core/res/res/values/config.xml
per specificare a che ora
da includere nel rilevamento automatico dell'ora e la priorità in cui
time_detector
prende in considerazione queste origini.
Per i dispositivi con Android 11 o versioni precedenti, la priorità origine è impostata come hardcoded su ["telephony", "network"]
, il che significa che i suggerimenti di telefonia hanno la priorità
sopra i suggerimenti di rete.
La configurazione AOSP predefinita è la seguente:
<!-- 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>
In Android 12, i suggerimenti di rete e telefonia vengono configurate come origini da usare per impostazione predefinita. I suggerimenti per l'orario di rete sono prioritarie rispetto ai suggerimenti per i tempi di telefonia. I produttori di dispositivi possono cambiare l'ordine delle origini per ripristinare il comportamento su Android 11 o versioni precedenti; in cui la telefonia ha una priorità più alta.
Per impostazione predefinita, se il suggerimento valido con priorità più elevata corrisponde a quello del dispositivo
l'ora attuale dell'orologio di sistema entro un paio di secondi, l'ora del dispositivo non
modifiche. Questo permette di evitare di creare lavori per le app installate che ascoltano
Intenzione ACTION_TIME_CHANGED
.
I valori dell'origine consentiti sono:
Limiti di tempo consentiti
Android 14 introduce un limite di tempo massimo
suggerimenti ricevuti dal servizio time_detector
. Se il dispositivo supporta
Processi a 32 bit, il framework imposta un limite di tempo superiore per impedire al dispositivo
dall'utilizzo di un suggerimento di orario che potrebbe attivare il problema Y2038.
Android 12 ha introdotto un limite di tempo inferiore che consente
convalidare i suggerimenti di orario ricevuti dal servizio time_detector
. Più basso è
il valore del limite di tempo utilizzato per i suggerimenti automatici viene impostato a partire dal timestamp della build.
Questa procedura si basa sul principio che un orario valido non può essere precedente all'orario
è stata creata l'immagine di sistema. Se un suggerimento di orario è precedente al limite di tempo inferiore, il valore
Il servizio time_detector
ignora il suggerimento perché non può essere valido se
che il timestamp della build sia corretto.
Per i dispositivi con Android 11 o versioni precedenti, il servizio time_detector
non
convalidare i suggerimenti temporali in arrivo per l'epoca Unix.
Tempi di debug e test
Questa sezione fornisce informazioni su come eseguire il debug e testare il comportamento
il servizio time_detector
e altri componenti condivisi da tutte le origini.
Interagire con il servizio time_detector
Per visualizzare la configurazione e lo stato del servizio time_detector
time_detector
servizio, usa:
adb shell cmd time_detector dump
Per visualizzare comandi aggiuntivi per il debug e il test del rilevamento del fuso orario, utilizza:
adb shell cmd time_detector help
L'output della guida descrive anche le proprietà del servizio device_config che possono essere
utilizzato per influire sul comportamento di time_detector
per i test o in produzione.
Per maggiori dettagli, vedi
Configurare un dispositivo mediante il servizio device_config.
Per convalidare il rilevamento automatico del tempo, i tester devono essere a conoscenza delle origini
Servizio in uso: time_detector
. Di seguito è riportato un esempio dell'output
il comando adb shell cmd time_detector dump
, con le informazioni
lo stato attuale dell'origine e del servizio in grassetto:
$ 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:
...
Le informazioni possono essere interpretate come segue:
Chiave | Valore |
---|---|
mEnvironment.isAutoTimeDetectionEnabled() |
Indica se il rilevamento automatico dell'ora è abilitato. |
mEnvironment.autoTimeLowerBound() |
Il limite inferiore attuale utilizzato per convalidare i suggerimenti di tempo. |
mEnvironment.autoOriginPriorities() |
Le origini in uso e l'ordine di priorità. |
Il log delle modifiche dell'ora indica le occasioni in cui il servizio time_detector
ha
ha modificato l'ora dell'epoca Unix corrente del dispositivo.
Le informazioni sulla cronologia dei suggerimenti indicano quali suggerimenti sono stati fatti ciascuna origine.
Rilevamento automatico del fuso orario
Questa sezione fornisce una panoramica del servizio time_zone_detector
che
gestisce il rilevamento automatico del fuso orario, i controlli utente nelle impostazioni, la telefonia e
rilevamento del fuso orario in base alla località
e dettagli dei test.
Il servizio time_zone_detector
La
time_zone_detector
presente sui dispositivi con Android 11 o versioni successive, gestisce il tempo automatico
il rilevamento della zona di destinazione. Regola il fuso orario attuale del dispositivo in base alle esigenze
sia abilitato il rilevamento automatico del fuso orario.
Quando il rilevamento automatico del fuso orario è abilitato, time_zone_detector
può trovarsi
uno di due stati: incerto e certo.
Quando il servizio time_zone_detector
è in un determinato stato, significa che
Il servizio time_zone_detector
ha ricevuto informazioni sul fuso orario, che
potrebbe causare la sostituzione del fuso orario attuale. Quando è incerta,
significa che non ha ricevuto informazioni o soltanto informazioni poco attendibili, il che
significa che non sostituisce il fuso orario corrente.
Gli stati del servizio time_zone_detector
possono includere quelli in cui
time_zone_detector
non ha informazioni sul fuso orario da utilizzare o dove ha
più fusi orari tra cui scegliere. Gli stati sono i seguenti:
- Viene inserito un determinato stato senza fusi orari quando il dispositivo
da qualche parte senza un fuso orario, ad esempio in acque internazionali o in una
nell'area contestata. Questo stato è simile a uno stato incerto, ma indica
che
time_zone_detector
non deve effettuare ulteriori azioni per provare a determinare il fuso orario. - Viene inserito uno stato con più fusi orari, dove si trovano
ambiguità o condizioni di confine. In questo stato, se il fuso orario attuale è
uno dei fusi orari di
time_zone_detector
è certo, il fuso orario attuale rimane invariato. Altrimenti, uno degli orari disponibili . Questo conferisce atime_zone_detector
un elemento di stickiness se l'utente ha selezionato manualmente il fuso orario in precedenza o come dispositivo si avvicina a un bordo.
Lo stato certo o incerto del servizio time_zone_detector
è determinato da
suggerimenti relativi al fuso orario inviati da un algoritmo.
In generale, i suggerimenti sono di due tipi che corrispondono molto probabilmente agli stati possibili
di time_zone_detector
: determinato e incerto. Di seguito sono riportate le
esempi di tipi di suggerimenti:
tipo =
uncertain
,zoneIds = []
- L'algoritmo non riconosce il fuso orario.
tipo =
certain
,zoneIds = ["Europe/London"]
- L'algoritmo è certo che la zona sia Europa/Londra.
tipo =
certain
,zoneIds = []
- L'algoritmo è sicuro, ma non ci sono ID zona associati con la posizione corrente.
tipo =
certain
,zoneIds = ["America/Denver", "America/Phoenix"]
- L'algoritmo è certo che la risposta sia una delle due zone, ma non riesco a scegliere tra "America/Denver" e "America/Phoenix".
Il servizio time_zone_detector
tratta le sequenze di suggerimenti come distinte
in base al loro algoritmo. A seconda dell'algoritmo, i suggerimenti
Contengono metadati che indicano il grado di certezza dell'algoritmo.
Il servizio time_zone_detector
è stateful, il che significa che conserva un record
dei suggerimenti più recenti fatti da ciascun algoritmo. Vengono inviati nuovi suggerimenti
al servizio time_zone_detector
se un suggerimento precedente non è più
risposta esatta; cioè se un algoritmo ora ha un suggerimento diverso o se ha
hanno perso la capacità di rilevare il fuso orario. Il servizio time_zone_detector
rivaluta i suggerimenti nuovi ed esistenti e aggiorna lo stato del dispositivo quando
ricevere suggerimenti.
Android supporta due algoritmi per il rilevamento del fuso orario:
- Telefonia
- Posizione
In genere il servizio time_zone_detector
utilizza un singolo algoritmo per
determinare il fuso orario. Quando l'algoritmo di localizzazione è supportato su un dispositivo,
l'algoritmo utilizzato dal dispositivo è determinato in base
Impostazioni del fuso orario configurate dall'utente. Quando
l'algoritmo in uso diventa incerto sul fuso orario time_zone_detector
di solito non utilizza suggerimenti di un altro algoritmo. Suggerimenti
associati ad algoritmi non in uso possono essere conservati in memoria
time_zone_detector
, ma non vengono utilizzati a meno che l'algoritmo
modifiche. Quando l'utente modifica le impostazioni per il rilevamento automatico del fuso orario
e l'algoritmo cambia, il suggerimento più recente disponibile per
viene utilizzato il nuovo algoritmo.
Per maggiori dettagli sulla situazione in cui vengono utilizzati più algoritmi per determinare il fuso orario, consulta Modalità di riserva telefonica.
Modalità di riserva per telefonia
Sui dispositivi con Android 13 e versioni successive, la
Il servizio time_zone_detector
supporta la modalità telefonia di riserva. Questa modalità
consente ad Android di usare temporaneamente i suggerimenti per il rilevamento della telefonia nelle situazioni in cui
Il rilevamento della posizione non è in grado di rilevare il fuso orario o i luoghi in cui il rilevamento della posizione
richiede più tempo per rilevare il fuso orario rispetto al rilevamento della telefonia.
La modalità di riserva per la telefonia si applica ai dispositivi su cui sia impostata la telefonia e la il rilevamento è supportato e se l'utente ha attivato l'opzione Usa posizione per impostare fuso orario in Impostazioni del fuso orario. La modalità è attivata automaticamente al riavvio di un dispositivo e quando la modalità aereo è disattivata.
In Android 14 e versioni successive, la telefonia di riserva può essere vengono attivati tramite API di segnalazione dello stato LTZP, ovvero se una LTZP segnala di essere incerta e di essere in grado di rilevare la posizione o il fuso orario è ridotto dall'ambiente, la modalità di riserva della telefonia attivata.
In modalità di riserva per la telefonia, il servizio time_zone_detector
utilizza la telefonia
suggerimenti se il rilevamento della posizione è disattivato fino all'algoritmo della posizione
fornisce un determinato suggerimento. Dopo aver ricevuto un determinato suggerimento,
la modalità di riserva è disattivata e vengono utilizzati esclusivamente i suggerimenti sulla posizione.
Per i dettagli di configurazione della modalità di riserva per la telefonia, consulta Configurazione del rilevamento del fuso orario.
Impostazioni fuso orario
Gli utenti possono attivare e configurare le impostazioni per il rilevamento automatico del fuso orario in l'app Impostazioni AOSP.
Figura 2. Rilevamento automatico del fuso orario nelle Impostazioni.
La tabella seguente descrive i controlli utente per il rilevamento del fuso orario nel App Impostazioni AOSP.
*Su Android 11 e versioni precedenti, l'etichetta è etichettata Usare il fuso orario fornito dalla rete |
|||
Posizione impostazioni AOSP | Nome impostazioni AOSP | Ambito | Comportamento |
---|---|---|---|
Sistema > Data e ora | Impostazione automatica del fuso orario* | Tutti gli utenti | Un pulsante di attivazione/disattivazione. Quando è attivato, il dispositivo è responsabile del rilevamento dell'ora attuale zona di destinazione. Se questa opzione è disattivata, gli utenti hanno a disposizione i controlli per impostare la fuso orario manuale. |
Sistema > Data e ora | Usa la posizione per impostare il fuso orario | Utente corrente | Un pulsante di attivazione/disattivazione. Disponibile da Android 12. Il pulsante di attivazione/disattivazione è visualizzato solo quando il rilevamento del fuso orario in base alla posizione è supportato sul dispositivo. Per le modifiche introdotte in Android 14, consulta Dispositivi che supportano solo il rilevamento del fuso orario in base alla posizione. |
Posizione | Usa posizione | Utente corrente | Un pulsante di attivazione/disattivazione. In generale consente o impedisce l'utilizzo della posizione del dispositivo. Il valore è pertinente se il rilevamento del fuso orario in base alla posizione è supportato sul dispositivo. |
Di seguito viene fornita una panoramica del comportamento del dispositivo per il fuso orario il rilevamento in base alle impostazioni scelte dall'utente:
[Data e ora] Imposta automaticamente il fuso orario: OFF
- L'utente deve selezionare manualmente il fuso orario.
[Data e ora] Imposta automaticamente il fuso orario: ON
[Località] Usa posizione: OFF
- I segnali di telefonia vengono utilizzati per rilevare il fuso orario.
[Posizione] Usa posizione: ON
[Data e ora] Usa la posizione per impostare il fuso orario: ON
- La posizione viene utilizzata per rilevare il fuso orario.
[Data e ora] Usa la posizione per impostare il fuso orario: OFF
- I segnali di telefonia vengono utilizzati per rilevare l'ora zona di destinazione.
Più dispositivi degli utenti
Poiché diverse impostazioni interessate hanno come ambito l'utente corrente, Il comportamento di rilevamento del fuso orario di un dispositivo può cambiare quando l'utente corrente modifiche su un dispositivo Android multiutente.
L'opzione Usa la posizione per impostare il fuso orario riguarda l'utente corrente e non è limitata dai criteri relativi ai dispositivi, il che significa che gli utenti possono sempre anche quando l'opzione Imposta il fuso orario automaticamente è disattivata o se i controlli di orario o fuso orario sono limitati dal controller dei criteri dei dispositivi.
Dispositivi che supportano solo l'algoritmo di rilevamento del fuso orario in base alla posizione
Questa sezione descrive il comportamento dei dispositivi che supportano solo la posizione dell'algoritmo.
Android 14 e versioni successive
- L'opzione Usa posizione non viene mostrata agli utenti nelle impostazioni AOSP. e il dispositivo si comporta come se l'opzione Usa posizione fosse attiva.
- Il valore dell'impostazione
SettingsProvider
con ambito utentelocation_time_zone_detection_enabled
viene ignorato. Questo valore registra in base alle preferenze dell'utente su altri tipi di dispositivi.
Android 12 o Android 13
- L'opzione Usa posizione è visibile agli utenti nell'app Impostazioni AOSP e gli utenti possono disattivare l'opzione. Se l'opzione è disattivata, il dispositivo non rileverà automaticamente il fuso orario.
Comportamento durante il passaggio da e verso il rilevamento automatico
Quando l'utente passa il rilevamento del fuso orario da manuale a automatico,
time_zone_detector
potrebbe essere già certo del fuso orario attuale. Se sì,
Se l'utente attiva il rilevamento automatico, il fuso orario del dispositivo potrebbe cambiare
per soddisfare l'opinione del servizio time_zone_detector
.
Analogamente, se l'utente apporta una modifica alle Impostazioni che comporta una modifica della
l'algoritmo attuale del servizio time_zone_detector
, time_zone_detector
potrebbe
hanno già ricevuto suggerimenti per il nuovo algoritmo, pertanto il tempo
potrebbe essere modificato in modo che corrisponda all'opinione del servizio time_zone_detector
immediatamente.
Rilevamento del fuso orario per le telefonate
Il rilevamento del fuso orario relativo alla telefonia utilizza i segnali telefonici per determinare la durata attuale fuso orario. Per ulteriori informazioni, vedi Fuso orario della telefonia Rilevamento.
Rilevamento del fuso orario in base alla posizione
Il rilevamento del fuso orario in base alla posizione è disponibile su Android 12 o superiore. Si tratta di una funzionalità facoltativa di rilevamento automatico del fuso orario che consente i dispositivi di usare la loro posizione per determinare il fuso orario attuale.
Il servizio location_time_zone_manager
, introdotto in
Android 12, funziona
server di sistema e contiene il codice responsabile dell'invio della posizione
di suggerimenti dell'algoritmo al servizio time_zone_detector
.
Per ulteriori informazioni, vedi
Rilevamento del fuso orario in base alla posizione.
Considerazioni sull'adozione delle funzionalità
Questa sezione descrive aspetti della funzionalità di rilevamento del fuso orario per Per aiutare il produttore del dispositivo a decidere se adottare la funzionalità su un dispositivo.
Confrontare servizi di telefonia e rilevamento della posizione
La tabella seguente mette a confronto i vantaggi e gli svantaggi di utilizzo della posizione anziché dei segnali di telefonia per il rilevamento del fuso orario.
Rilevamento della telefonia | Rilevamento della posizione | |
---|---|---|
Correttezza | Varia in base al paese. Dipende dal Centro clienti, dalla correttezza e dalla disponibilità di NITZ. |
Dipende dalla configurazione delle funzionalità o dai componenti del plug-in. La correttezza varia in base a:
|
Aggiornabilità | Il rilevamento della telefonia si basa sui file contenuti nell'intervallo Time aggiornabile Modulo Zone Data (com.android.tzdata APEX). | Dipende dalla configurazione delle funzionalità o dai componenti del plug-in. L'aggiornabilità in genere dipende dal fatto che il dispositivo utilizzi un server o un client i dati delle mappe dei fusi orari. Nota. I dati della mappa del fuso orario non sono contenuti nel campo Ora Modulo Dati di zona utilizzato per aggiornare la copia di Android di TZDB e altra data/ora le informazioni sulla zona. I produttori dei dispositivi devono inoltre considerare la coerenza della versione tra regole relative al fuso orario e dati della mappa del fuso orario. |
Consumo energetico | Assente o basso consumo energetico | Dipende dalle impostazioni di geolocalizzazione dell'utente, dai plug-in utilizzati e in genere quali altre app richiedono la posizione. |
Disponibilità | Solo dispositivi di telefonia. In genere richiede una SIM funzionante. | Il rilevamento della posizione dipende dai fornitori di posizione disponibili. |
Privacy degli utenti
Il fuso orario preferito di un utente è in genere determinato dalla sua area geografica in ogni località. La località include dati sensibili. Gli utenti potrebbero essere preoccupati Conoscenza della condivisione della propria posizione nell'ambito del rilevamento del fuso orario. Non correlati al rilevamento del fuso orario, tutte le app in esecuzione su un dispositivo possono leggere il fuso orario attuale del dispositivo senza richiedere l'autorizzazione Android e le app possono dedurre un'idea imprecisa della posizione del dispositivo da queste informazioni.
Nello specifico, il rilevamento del fuso orario può funzionare in modalità passiva o attiva significa:
- Passiva: qualcosa nell'ambiente del dispositivo indica al dispositivo il fuso orario da utilizzare nell'ambiente.
- Attivo: il dispositivo deve calcolare il fuso orario per se stesso e in base alle esigenze impostazioni della privacy e il suo consenso, ottiene il la posizione del dispositivo. Può quindi condividere la sua posizione con i servizi di machine learning. Consulta la discussione di seguito per maggiori dettagli sulla privacy dell'utente e sul consenso.
Il rilevamento passivo, come ad esempio con l'algoritmo di telefonia, non ha ulteriori e implicazioni per la privacy degli utenti.
Il rilevamento attivo, ad esempio con l'algoritmo di localizzazione, implica la determinazione del la posizione del dispositivo, la quale gli utenti potrebbero non voler accettare, e la posizione può essere inviato su una rete per determinare l'ID del fuso orario.
L'approccio di Android alla privacy dell'utente per il rilevamento del fuso orario offre all'utente possibilità di disattivare singolarmente gli algoritmi che dovrebbero essere attivi. Inoltre, il codice della piattaforma AOSP non riguarda direttamente la località stessa: il rilevamento della posizione e la mappatura della posizione agli ID dei fusi orari vengono lasciati collegati configurati dai produttori dei dispositivi.
Per ulteriori dettagli sulle funzionalità per la privacy dell'utente, consulta Fuso orario posizione Rilevamento.
Configurazione
I produttori di dispositivi possono configurare il servizio time_zone_detector
per cambiare
il suo comportamento. In questa sezione vengono descritte le opzioni di configurazione per l'architettura
comportamento del servizio time_zone_detector
. Per i dettagli di configurazione
gli algoritmi di rilevamento del fuso orario e della telefonia, consulta
Rilevamento del fuso orario relativo alla telefonia
e
Rilevamento del fuso orario in base alla posizione.
La configurazione AOSP di base è
frameworks/base/core/res/res/values/config.xml
Chiave di configurazione | Valore AOSP | Descrizione |
---|---|---|
config_supportTelephonyTimeZoneFallback |
true |
Quando true , time_zone_detector utilizza la telefonia
la modalità di riserva. Questa opzione è disponibile per Android 13.
e superiori.
|
Modifica del comportamento predefinito del dispositivo
In AOSP, il rilevamento automatico del fuso orario è abilitato per impostazione predefinita con
Impostazione auto_time_zone
impostata su true
. Per disattivare il rilevamento automatico del tempo
per impostazione predefinita, imposta il valore di def_auto_time_zone
definito in
frameworks/base/packages/SettingsProvider/res/values/defaults.xml
a false
.
Quando ripristini un backup da un altro dispositivo, il framework aggiorna il valore
dell'impostazione auto_time_zone
per impostazione predefinita. Per assicurarti che questo
l'impostazione non viene ripristinata da un backup, includi auto_time_zone
nella
Array restore_blocked_global_settings
definito in
frameworks/base/packages/SettingsProvider/res/values/blocked_settings.xml
.
Debug e test del fuso orario
Questa sezione fornisce informazioni su come eseguire il debug e testare il comportamento
il servizio time_zone_detector
e gli altri componenti condivisi da tutti
degli algoritmi.
Configurare un dispositivo utilizzando il servizio device_config
Il servizio device_config
è un meccanismo utilizzato su Android per configurare
comportamento modificabile mediante valori che in genere vengono estratti da un server remoto
da codice proprietario (non AOSP). Quando utilizzi i valori device_config
per i test,
in particolare durante i test manuali a lungo termine, il dispositivo potrebbe sincronizzare
, che reimpostavano i flag e cancellavano i valori impostati per i test.
In Android 12 o versioni successive, per impedire temporaneamente la segnalazione utilizzare:
adb shell cmd device_config set_sync_disabled_for_tests persistent
Per ripristinare la sincronizzazione dei flag dopo i test, utilizza:
adb shell cmd device_config set_sync_disabled_for_tests none
Dopo aver ripristinato la sincronizzazione dei flag, riavvia il dispositivo.
Per ulteriori informazioni, usa $ adb shell cmd device_config help
.
Interagire con il servizio time_zone_detector
Per visualizzare la configurazione e lo stato di time_zone_detector
time_zone_detector
servizio, usa:
adb shell cmd time_zone_detector dump
Per visualizzare comandi aggiuntivi per il debug e il test del rilevamento del fuso orario, utilizza:
adb shell cmd time_zone_detector help
L'output della guida descrive anche le proprietà del servizio device_config
che possono
da utilizzare per influire sul comportamento del servizio time_zone_detector
per i test
o in produzione. Per maggiori dettagli, vedi
Configurare un dispositivo mediante il servizio device_config.
Per convalidare il rilevamento del fuso orario, i tester devono essere a conoscenza di quale algoritmo
time_zone_detector
sta usando. Per comprendere e influenzare l'algoritmo attuale
di time_zone_detector
, utilizza una delle seguenti opzioni:
- Controlla visivamente l'interfaccia utente delle Impostazioni. Per ulteriori informazioni, vedi Impostazioni del fuso orario.
Dalla riga di comando tramite adb:
- Per eseguire il dump dello stato di
time_zone_detector
, usaadb shell cmd time_zone_detector dump
- Per modificare le impostazioni del dispositivo, utilizza altri comandi di
time_zone_detector
. Per ulteriori informazioni, usaadb shell cmd time_zone_detector help
.
- Per eseguire il dump dello stato di
Di seguito è riportato un esempio dell'output del comando adb shell cmd
time_zone_detector dump
, con le informazioni sulla configurazione attuale
lo stato dell'algoritmo e del servizio in grassetto:
$ 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:
...
Le informazioni possono essere interpretate come segue:
Chiave | Valore |
---|---|
mUserConfigAllowed |
Indica se all'utente viene impedito di controllare le impostazioni di data e ora. Controller dei criteri dei dispositivi. |
mTelephonyDetectionSupported |
Se il dispositivo ha il rilevamento del fuso orario relativo alle telefonate. |
mGeoDetectionSupported |
Se il dispositivo supporta il rilevamento del fuso orario in base alla posizione. Questo è il stato effettivo basato sulla configurazione e sulla presenza di almeno una LTZP. |
mAutoDetectionEnabled |
Se il rilevamento automatico del fuso orario è abilitato. |
mLocationEnabled |
Pulsante di attivazione/disattivazione della posizione principale. |
mGeoDetectionEnabled |
Il cambio di algoritmo: false indica l'algoritmo di telefonia,
e true indica l'algoritmo della località. |
Le informazioni sulla cronologia dei suggerimenti indicano quali suggerimenti sono stati fatti. tramite le Impostazioni (manuale) e tramite gli algoritmi di telefonia e di geolocalizzazione.