Cette fonctionnalité permet aux partenaires de choisir comment synchroniser l'heure, que ce soit depuis le système d'exploitation automobile Android (AAOS) ou depuis les systèmes des véhicules vers Android. Pour garantir des implémentations de qualité, vous pouvez configurer AAOS pour utiliser l'une des deux nouvelles propriétés VHAL décrites ci-dessous pour propager efficacement les valeurs. Utiliser:
-
ANDROID_EPOCH_TIME
pour utiliser Android comme source de vérité sur le temps. Le VHAL prend en charge cette propriété en écriture seule , qui communique les changements d'heure d'Android à d'autres systèmes du véhicule, tels que les unités de commande électroniques (ECU) et le module de commande de carrosserie (BCM). -
EXTERNAL_CAR_TIME
pour ne pas utiliser Android comme source de vérité pour le temps. Dans ce cas, le VHAL prend en charge la propriétéEXTERNAL_CAR_TIME
en lecture seule , qui communique les changements d'heure d'autres systèmes du véhicule (tels que les ECU et le BCM) à Android.
AAOS fournit également une TimeDetectorStrategy
configurable pour vous aider à prioriser différentes sources de temps dans Android.
Android est la source de vérité pour le temps
Lorsqu'Android est utilisé comme source d'heure, les constructeurs OEM peuvent synchroniser d'autres systèmes automobiles (y compris les calculateurs et un BCM) avec l'heure d'Android.
Pour ce faire, l’implémentation VHAL doit prendre en charge la propriété en écriture seule ANDROID_EPOCH_TIME
. Android publie une mise à jour de la propriété en lisant l'heure du système, à la fois au démarrage et à chaque fois que la source de temps dans Android est modifiée.
Android n'est pas la source de vérité pour le moment
Lorsqu'Android n'est pas utilisé comme source de temps, vous pouvez synchroniser l'heure d'Android pour qu'elle soit la source de vérité du temps (par exemple, avec un ECU ou le BCM). Dans ce cas, l'implémentation 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 constructeurs 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 Détection temporelle GNSS . Par 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 la mise en œuvre interne d'Android
Le flux suivant a lieu lorsque la propriété ANDROID_EPOCH_TIME
VHAL 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 à divers ECU et/ou unités BCM.
Le flux suivant a lieu lorsque la propriété EXTERNAL_CAR_TIME
VHAL 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 uneExternalTimeSuggestion
àTimeManager
. -
TimeManager
transmet la suggestion àTimeDetectorService
. -
TimeDetectorService
utiliseTimeDetectorStrategy
pour choisir une nouvelle heure système.