La visualizzazione accurata dell'ora è una funzionalità principale prevista per un sistema di infotainment per auto. Anche se può sembrare ingannevolmente semplice, soprattutto quando le aspettative di gestione dell'ora e del fuso orario sono basse e devono essere soddisfatte, l'ora diventa rapidamente complessa quando è necessario visualizzare una data e un'ora affidabili e accurate senza intervento manuale.
Tutti gli orologi in tempo reale in genere utilizzati nel system-on-chip (SoC) contengono una certa deriva, che si accumula nel tempo e può portare a errori significativi se non viene corretta. Inoltre, poiché le aspettative sono elevate che l'ora locale venga visualizzata con precisione, è necessario considerare la differenza corretta rispetto al Tempo Coordinato Universale (UTC).
È possibile che le informazioni sul fuso orario, nonché l'applicazione dell'ora legale, cambino durante la durata prevista di un veicolo. Ad esempio, dopo molti anni di implementazione dell'ora legale, il Brasile ha scelto di non avviare un programma di ora legale nel 2019.
Android fornisce l'infrastruttura necessaria per gestire le complicazioni della gestione delle regole del fuso orario. Per maggiori dettagli, vedi Regole del fuso orario, che consente agli OEM di inviare dati aggiornati sulle regole del fuso orario ai dispositivi senza richiedere un aggiornamento del sistema. Questo meccanismo consente quanto segue:
- Gli utenti ricevono aggiornamenti tempestivi (che estendono la durata utile di un dispositivo Android).
- Gli OEM possono testare gli aggiornamenti del fuso orario indipendentemente dagli aggiornamenti dell'immagine di sistema.
Nota: AAOS 10 non supporta il meccanismo di aggiornamento dei moduli basato su APEX fornito nelle release di Android 10 (e versioni successive).
Nota: per implementare questo meccanismo è necessario riavviare il sistema.
Origini delle informazioni sull'ora (fuso orario) nelle auto
I dispositivi Android gestiscono l'ora Unix a livello di sistema, applicano la differenza di fuso orario desiderata e poi convertono il valore in ora locale per la visualizzazione agli utenti. L'ID zona dell'utente corrente (spesso chiamato ID Olson) viene memorizzato come impostazione. Ad esempio, Europe/London.
Gran parte del meccanismo descritto di seguito descrive le informazioni sull'ora. Lo scopo di questi standard è fornire agli utenti l'ora corrente, non descrivere le regole del fuso orario applicabili. Per determinare il fuso orario effettivo, il dispositivo deve risalire a fattori come paese, differenza e differenza dell'ora legale prima di impostare l'ID zona.
La procedura può essere difficile. Il calcolo a ritroso in base alle informazioni disponibili può essere ambiguo. Ad esempio, la regola del fuso orario America/Denver osserva l'ora legale, ma adotta l'ora legale di montagna (MDT) durante l'estate, mentre America/Phoenix continua a riconoscere l'ora legale di montagna.
Segnale radio cell
Le informazioni di sistema (SI) sono un aspetto essenziale dell'interfaccia aerea Long-Term Evolution (LTE), che viene trasmessa dalla stazione base (BS) sul canale di controllo della trasmissione (BCCH). 3GPP TS 36.331 specifica SystemInformationBlockType16 (SIB16) che contiene informazioni relative a GPS e Tempo Coordinato Universale (UTC), differenza di ora locale, nonché informazioni sull'ora legale.
Funzionalità simili sono disponibili in 2G e 3G, dove le informazioni sull'identità di rete e sul fuso orario (NITZ) possono essere trasmesse (per maggiori dettagli, vedi 3GPP TS 22.042). Altri standard di segnale radio cell hanno funzionalità equivalenti.
Purtroppo, la caratteristica comune alla maggior parte degli standard è che l'invio di queste informazioni è facoltativo, quindi non è disponibile universalmente su tutte le reti.
| Pro | Contro |
|---|---|
|
|
Network Time Protocol
Il Network Time Protocol (NTP) viene spesso utilizzato per ottenere informazioni sull'ora Unix epoch relativamente precise. Android supporta la sincronizzazione dell'ora di sistema con quella di un server NTP
se può essere esposta ai client di
RadioManager tramite i metadati generici
RadioTuner.getParameters(). NTP aggiorna l'ora di sistema quando non è sincronizzata e un operatore non ha fornito di recente un aggiornamento NITZ. Se l'utente attiva AUTO_TIME quando NITZ non è disponibile, il sistema controlla immediatamente l'ora di rete.
| Pro | Contro |
|---|---|
|
Semplicità, supportata da Android. |
|
Sintonizzatore radio di trasmissione
Sebbene l'utilizzo di un sintonizzatore integrato per recuperare le informazioni sull'ora e sul fuso orario sia interessante, comporta delle difficoltà. Numerosi standard di trasmissione radio definiscono le opzioni per esporre le informazioni desiderate. In generale, un sintonizzatore radio di trasmissione fornisce le stesse informazioni di un segnale radio cell.
La sezione 8.1 di ETSI EN 300 401 V1.4.1 (2006-06) specifica le funzionalità delle informazioni sui servizi che forniscono informazioni supplementari sui servizi sia per i programmi audio sia per i dati per i sistemi di trasmissione audio digitale (DAB). La sezione 8.1.3 definisce il formato per l'ora e la data, nonché le informazioni per il paese e l'offset temporale locale.
Analogamente, per il Radio Data System (RDS) comunemente implementato nei sintonizzatori FM, la sezione 3.1.5.6 di lo standard EN 50067 definisce il formato per l'ora e i dati (trasmessi una volta al minuto). Inoltre, il codice paese esteso (ECC) può essere recuperato anche come parte dell'identificazione del programma trasmesso.
HD Radio contiene le opzioni corrispondenti come parte della descrizione della progettazione dell'interfaccia aerea HD Radio™ del servizio di informazioni sulla stazione di trasporto specifica nel messaggio dei parametri del servizio di informazioni sulla stazione (SIS) (ID messaggio 0111). La sezione 5 indica chiaramente le parole di avvertimento da rispettare quando si tenta di utilizzare il supporto dell'orologio della trasmissione. La stessa logica si applica anche ad altri sistemi:
| ... questi dati descrivono la consuetudine locale nella sede dell'emittente, che potrebbe essere uguale o diversa dalla consuetudine locale nella sede del ricevitore. In prossimità dei confini dei fusi orari, i consumatori possono ricevere una molteplicità di stazioni che forniscono dati diversi. Pertanto, questi dati vengono forniti solo come suggerimenti, la cui interpretazione e utilizzo devono essere discrezionali, soggetti al controllo del cliente. ..." |
Inoltre, almeno per HD Radio, la trasmissione di queste informazioni è facoltativa e non deve essere utilizzata esclusivamente.
Pro Contro- In genere disponibile in diversi standard radio di trasmissione regionali.
- Non richiede la connettività internet.
- Android non supporta questa funzionalità predefinita.
- Per rilevare in modo affidabile le informazioni, è necessario che il sintonizzatore sia acceso (almeno occasionalmente in background).
-
L'affidabilità dipende dall'emittente.
Suggerimenti per l'implementazione
Android supporta la sincronizzazione dell'ora di sistema con quella di un server NTP se può essere esposta ai client diRadioManager. La soluzione consigliata è quella di utilizzare la funzionalità di estensione del fornitore.
L'implementazione di questa funzionalità deve avvenire nel livello di astrazione hardware (HAL), dopodiché
può essere esposta ai client di RadioManager tramite il metodo generico
RadioTuner.getParameters().
Affinché la soluzione rimanga solida, il consumatore di questa estensione del fornitore deve determinare se l'HAL supporta la funzionalità (non presupporre la sua esistenza). Le stringhe dei parametri per la chiamata getParameters devono essere organizzate in modo chiaro per un utilizzo non ambiguo tra i fornitori. Ad esempio, utilizzando lo spazio dei nomi della tua organizzazione anteponendo il dominio appropriato, ad esempio com.me.timezoneTuner.currenttimezone.
Data la natura basata sugli eventi delle informazioni, può essere utile utilizzare il callback RadioTuner.Callback.onParametersUpdated() per ricevere queste informazioni. Se questa funzionalità deve essere configurabile, progetta un insieme di routine personalizzate su setParameters. Ad esempio:
com.me.timezoneTuner.currenttimezoneEvent.enable
Sistema di navigazione satellitare globale
Di per sé, il sistema di navigazione satellitare globale (GNSS) può fornire solo informazioni accurate sull'ora e sulla posizione.
Geolocalizzazione
La soluzione a questo inconveniente è eseguire il geocoding inverso e determinare il paese e il fuso orario eseguendo una ricerca in base alla posizione. GNSS è la scelta ovvia (e di migliore qualità) delle informazioni sulla posizione in un veicolo. L'API Time Zone di Google offre tutto il necessario per eseguire la conversione richiesta. Naturalmente, è necessaria la connettività internet. Garantire la privacy degli utenti deve essere una priorità assoluta quando si implementa una soluzione online. È necessario richiedere l'autorizzazione di un utente ad accettare (o meno) i costi di utilizzo dei dati.
È possibile creare una soluzione adatta per l'utilizzo offline. Un database di mappe locale con una risoluzione sufficiente per determinare con precisione il paese e il fuso orario può essere inserito nella memoria di un veicolo. Con questa e una strategia completamente implementata per aggiornare le informazioni sul fuso orario (e sul paese) in base alle esigenze, è possibile eseguire il geocoding inverso del paese/fuso orario in base alla posizione GNSS ottenuta dal sottosistema Location.
| Pro | Contro |
|---|---|
|
|
Smartphone connesso tramite Bluetooth, Wi-Fi o USB
È possibile utilizzare diverse tecnologie per sfruttare lo smartphone di un utente per ottenere dati sull'ora e sul fuso orario. Per tutti gli smartphone, è necessario installare una coppia di app personalizzate e app complementari sullo smartphone e sul sistema In-Vehicle Infotainment (IVI). È quindi possibile sincronizzare l'ora all'intervallo desiderato. Ad esempio, quando si stabilisce la connessione e quando lo smartphone rileva un nuovo fuso orario.
Alcuni smartphone che supportano Bluetooth Low Energy (BLE) offrono la possibilità di recuperare l'ora tramite la caratteristica GATT Current Time e la specifica del profilo del servizio Current Time 1.1. Tuttavia, questa opzione non si rivolge a un segmento di mercato sufficientemente ampio da poter essere utilizzata esclusivamente.
| Pro | Contro |
|---|---|
|
|
Utilizzare le origini
Ogni fornitore di dispositivi deve determinare il livello di difficoltà da impostare e quali percorsi utente considerare più critici. Solo con una chiara comprensione delle esperienze utente critiche desiderate è possibile prendere la decisione migliore. Nella maggior parte dei casi, i fornitori devono considerare i compromessi tra praticità e complessità dell'implementazione.
Ogni opzione descritta sopra presenta vantaggi e svantaggi. Ad esempio, è necessario prendere una decisione di progettazione critica in merito alla resilienza accettabile rispetto a una visualizzazione dell'ora occasionale scadente e a come gestire gli svantaggi. Una soluzione completamente automatica che dovrebbe funzionare bene in tutti gli scenari, ma che deve essere basata su una combinazione di diverse origini di informazioni. Nessuna singola opzione può fornire una disponibilità del 100%.
Un'opzione di configurazione manuale come fallback temporaneo è facile da eseguire e, in pratica, può essere sufficiente per molti utenti.