Questa funzionalità consente ai partner di scegliere come sincronizzare l'ora, se dal sistema operativo Android Automotive (AAOS) o dai sistemi veicolari ad Android. Per garantire implementazioni di qualità, puoi configurare AAOS per utilizzare una delle due nuove proprietà VHAL descritte di seguito per propagare i valori in modo efficace. Utilizzo:
-
ANDROID_EPOCH_TIME
per utilizzare Android come fonte di verità per il tempo. Il VHAL supporta questa proprietà di sola scrittura , che comunica i cambiamenti di orario da Android ad altri sistemi veicolari, come le unità di controllo elettronico (ECU) e il modulo di controllo del corpo (BCM). -
EXTERNAL_CAR_TIME
per non utilizzare Android come fonte di verità per il momento. In questo caso, il VHAL supporta la proprietà di sola letturaEXTERNAL_CAR_TIME
, che comunica le modifiche dell'orario da altri sistemi veicolari (come ECU e BCM) ad Android.
AAOS fornisce anche una TimeDetectorStrategy
configurabile per aiutarti a dare priorità a diverse fonti di tempo all'interno di Android.
Android è la fonte della verità per il tempo
Quando si utilizza Android come fonte dell'ora, gli OEM possono sincronizzare altri sistemi dell'auto (comprese le ECU e un BCM) con l'ora di Android.
A tale scopo, l'implementazione VHAL deve supportare la proprietà di sola scrittura ANDROID_EPOCH_TIME
. Android pubblica un aggiornamento alla proprietà leggendo l'ora del sistema, sia all'avvio che ogni volta che viene modificata l'origine dell'ora in Android.
Android non è la fonte della verità per il momento
Quando Android non viene utilizzato come fonte dell'ora, è possibile sincronizzare l'ora di Android in modo che sia la fonte esatta 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 su questa proprietà ogni volta che la fonte dell'ora cambia o ricalibra 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 saperne 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 di implementazione interna di Android
Il flusso seguente ha luogo quando è supportata la proprietà VHAL ANDROID_EPOCH_TIME
:
-
TimeHalService
(in CarServices) riceve una trasmissione dal sistema Android perIntent.ACTION_TIME_CHANGED
. -
TimeHalService
pubblica un aggiornamento alla proprietà VHALANDROID_EPOCH_TIME
. - Il VHAL può propagare il valore temporale ricevuto a varie ECU e/o unità BCM.
Il flusso seguente ha luogo quando è supportata la proprietà VHAL EXTERNAL_CAR_TIME
:
- 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 una nuova ora di sistema.