Questa funzione consente ai partner di scegliere come sincronizzare l'ora, sia dal sistema operativo Android Sistema operativo Automotive (AAOS) o dai sistemi veicolari ad Android. Per garantire implementazioni di qualità, puoi configurare AAOS in modo che utilizzi una delle due nuove proprietà VHAL descritti di seguito per propagare i valori in modo efficace. Utilizza:
ANDROID_EPOCH_TIME
per usare Android come fonte attendibile per il tempo. VHAL supporta questa proprietà di sola scrittura, che comunica i cambiamenti temporali da Android ad altri sistemi veicolari, come le unità di controllo elettroniche (ECU) e il Modulo di controllo del corpo (BCM).EXTERNAL_CAR_TIME
per non utilizzare Android come origine per il tempo. In questo caso, VHAL supporta il ruolo di sola lettura proprietàEXTERNAL_CAR_TIME
, che comunica i cambiamenti di orario da un altro veicolo come ECU e BCM) ad Android.
AAOS fornisce anche un TimeDetectorStrategy
configurabile per aiutarti a stabilire la priorità
diverse origini dell'ora in Android.
Android è la fonte di riferimento per il tempo
Quando Android viene usato come fonte di tempo, gli OEM possono sincronizzare altri sistemi dell'auto (tra cui ECU e BCM) con l'ora di Android.
A tale scopo, l'implementazione VHAL deve supportare la proprietà di sola scrittura.
proprietà ANDROID_EPOCH_TIME
. Android pubblica un aggiornamento della proprietà leggendo
all'ora di sistema, sia al momento dell'avvio sia ogni volta che l'origine dell'ora in Android viene modificata.
Android non è una fonte attendibile per il tempo
Quando Android non viene utilizzato come fonte di tempo, puoi sincronizzare l'ora di Android.
essere la fonte di verità per il tempo (ad esempio, con una ECU o il BCM). In questo caso,
L'implementazione VHAL deve supportare la proprietà di sola lettura EXTERNAL_CAR_TIME
e pubblicare
vengono aggiornati a questa proprietà ogni volta che la sorgente dell'ora cambia o ricalibra l'orologio.
Gli OEM devono inoltre assicurarsi che:
- I valori
config_autoTimeSourcesPriority
sono contenuti incore/res/res/values/config.xml
. - La proprietà
config_enableExternalCarTimeToExternalTimeSuggestion
nel Configurazioni overlay CarServicespackages/services/Car/service/res/values/config.xml
è impostato sutrue
. external
ora ha la priorità appropriata nel Configurazione diTimeDetectorStrategy
. Per saperne di più, vedi Rilevamento del tempo GNSS. Ad esempio:<!-- 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>external</item> <item>gnss</item> <item>network</item> <item>telephony</item> </string-array>
Dettagli sull'implementazione interna di Android
Il flusso seguente si verifica quando la proprietà VHAL ANDROID_EPOCH_TIME
è
supportati:
TimeHalService
(in CarServices) riceve un annuncio dal sistema Android perIntent.ACTION_TIME_CHANGED
.TimeHalService
pubblica un aggiornamento della proprietà VHALANDROID_EPOCH_TIME
.- Il VHAL può propagare il valore del tempo ricevuto a varie ECU e/o unità BCM.
Il flusso seguente si verifica quando la proprietà VHAL EXTERNAL_CAR_TIME
è
supportati:
- VHAL aggiorna la proprietà
EXTERNAL_CAR_TIME
. TimeHalService
(in CarServices) legge la proprietà tramite un abbonamento.TimeHalService
crea e invia unExternalTimeSuggestion
aTimeManager
.TimeManager
inoltra il suggerimento aTimeDetectorService
.TimeDetectorService
utilizzaTimeDetectorStrategy
per scegliere un nuovo l'ora di sistema.