Cette fonctionnalité permet aux partenaires de choisir comment synchroniser l'heure, que ce soit à partir du système d'exploitation Android Automotive OS (AAOS) ou des systèmes automobiles vers Android. Pour garantir des implémentations de qualité, vous pouvez configurer AAOS pour qu'il utilise l'une des deux nouvelles propriétés VHAL décrites ci-dessous afin de propager efficacement les valeurs. Utilisez :
ANDROID_EPOCH_TIME
pour utiliser Android comme source de référence pour l'heure. Le VHAL prend en charge cette propriété en écriture uniquement, qui communique les changements de temps d'Android à d'autres systèmes automobiles, tels que les unités de contrôle électronique (ECU) et le module de contrôle de la carrosserie (BCM).EXTERNAL_CAR_TIME
pour ne pas utiliser Android comme source de référence pour l'heure. Dans ce cas, le VHAL est compatible avec la propriété en lecture seuleEXTERNAL_CAR_TIME
, qui communique les changements de temps d'autres systèmes automobiles (tels que les ECU et les BCM) à Android.
AAOS fournit également un TimeDetectorStrategy
configurable pour vous aider à hiérarchiser les différentes sources de temps dans Android.
Android est la source de référence pour l'heure
Lorsque Android est utilisé comme source de temps, les OEM peuvent synchroniser d'autres systèmes automobiles (y compris les ECU et un BCM) avec l'heure Android.
Pour ce faire, l'implémentation de VHAL doit prendre en charge la propriété ANDROID_EPOCH_TIME
en écriture seule. Android publie une mise à jour de la propriété en lisant l'heure système, à la fois au démarrage et chaque fois que la source d'heure dans Android est modifiée.
Android n'est pas la source de référence pour l'heure
Lorsque Android n'est pas utilisé comme source de temps, vous pouvez synchroniser l'heure Android pour qu'elle soit la source de vérité pour l'heure (par exemple, avec un ECU ou le BCM). Dans ce cas, l'implémentation de VHAL doit prendre en charge la propriété en lecture seule EXTERNAL_CAR_TIME
et publier des mises à jour de cette propriété chaque fois que la source de l'heure change ou recalibre l'horloge.
Les OEM doivent également s'assurer que:
- Les valeurs
config_autoTimeSourcesPriority
sont contenues danscore/res/res/values/config.xml
. - La propriété
config_enableExternalCarTimeToExternalTimeSuggestion
dans les configurations de superposition CarServicespackages/services/Car/service/res/values/config.xml
est définie surtrue
. - L'heure
external
a la priorité appropriée dans la configurationTimeDetectorStrategy
. Pour en savoir plus, consultez la section Détection de l'heure GNSS. Exemple :<!-- 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>
Détails de l'implémentation interne d'Android
Le flux suivant se produit lorsque la propriété VHAL ANDROID_EPOCH_TIME
est prise en charge:
TimeHalService
(dans CarServices) reçoit une diffusion du système Android pourIntent.ACTION_TIME_CHANGED
.TimeHalService
publie une mise à jour de la propriété VHALANDROID_EPOCH_TIME
.- Le VHAL peut propager la valeur temporelle reçue à différents ECU et/ou unités BCM.
Le flux suivant se produit lorsque la propriété VHAL EXTERNAL_CAR_TIME
est prise en charge:
- VHAL met à jour la propriété
EXTERNAL_CAR_TIME
. TimeHalService
(dans CarServices) lit la propriété via un abonnement.TimeHalService
crée et envoie unExternalTimeSuggestion
àTimeManager
.TimeManager
transmet la suggestion àTimeDetectorService
.TimeDetectorService
utiliseTimeDetectorStrategy
pour choisir une nouvelle heure système.