Questa funzionalità consente ai partner di scegliere come sincronizzare l'ora, dall'AAOS (Android Automotive Operating System) o dai sistemi dei veicoli ad Android. Per garantire implementazioni di qualità, puoi configurare AAOS in modo da utilizzare una delle due nuove proprietà VHAL descritte di seguito per propagare i valori in modo efficace. Utilizza:
ANDROID_EPOCH_TIME
per utilizzare Android come fonte attendibile per il tempo. VHAL supporta questa proprietà sola lettura, che comunica le variazioni di tempo da Android ad altri sistemi del veicolo, come le unità di controllo elettronico (ECU) e il modulo di controllo della carrozzeria (BCM).EXTERNAL_CAR_TIME
non utilizzare Android come fonte di riferimento per il tempo. In questo caso, VHAL supporta la proprietàEXTERNAL_CAR_TIME
sola lettura, che comunica ad Android le variazioni di tempo di altri sistemi del veicolo (come ECU e BCM).
AAOS fornisce anche un TimeDetectorStrategy
configurabile per aiutarti a dare la priorità alle diverse origini di tempo in Android.
Android è la fonte attendibile per l'ora
Quando Android viene utilizzato come origine dell'ora, gli OEM possono sincronizzare altri sistemi dell'auto (incluse le ECU e un BCM) con l'ora di Android.
A tal fine, l'implementazione VHAL deve supportare la proprietà sola scrittura
ANDROID_EPOCH_TIME
. Android pubblica un aggiornamento della proprietà leggendo il tempo di sistema, sia all'avvio sia ogni volta che l'origine di tempo in Android viene modificata.
Android non è la fonte attendibile per l'ora
Quando Android non viene utilizzato come origine dell'ora, puoi sincronizzare l'ora di Android per farla diventare l'origine attendibile dell'ora (ad esempio con un'ECU o il BCM). In questo caso, l'implementazione VHAL deve supportare la proprietà di sola lettura EXTERNAL_CAR_TIME
e pubblicare aggiornamenti a questa proprietà ogni volta che cambia l'origine dell'ora o viene ricalibrato l'orologio.
Gli OEM devono inoltre garantire che:
- I valori
config_autoTimeSourcesPriority
sono contenuti incore/res/res/values/config.xml
. - La proprietà
config_enableExternalCarTimeToExternalTimeSuggestion
nelle configurazioni dell'overlay CarServicespackages/services/Car/service/res/values/config.xml
è impostata sutrue
. - L'ora
external
ha la priorità appropriata nella configurazioneTimeDetectorStrategy
. Per scoprire di più, consulta Rilevamento dell'ora 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
Quando la proprietà VHAL ANDROID_EPOCH_TIME
è supportata, viene eseguito il seguente flusso:
TimeHalService
(in CarServices) riceve una trasmissione 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.
Quando la proprietà VHAL EXTERNAL_CAR_TIME
è supportata, viene eseguito il seguente flusso:
- 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 valore dell'ora di sistema.