Mit dieser Funktion können Partner wählen, wie die Zeit synchronisiert werden soll, ob vom Android Automotive Operating System (AAOS) oder von Fahrzeugsystemen zu Android. Um qualitativ hochwertige Implementierungen sicherzustellen, können Sie AAOS so konfigurieren, dass es eine der beiden unten beschriebenen neuen VHAL-Eigenschaften verwendet, um die Werte effektiv weiterzugeben. Verwenden:
-
ANDROID_EPOCH_TIME
, um Android als Quelle der Wahrheit für die Zeit zu verwenden. Das VHAL unterstützt diese schreibgeschützte Eigenschaft, die Zeitänderungen von Android an andere Fahrzeugsysteme wie die elektronischen Steuereinheiten (ECU) und das Body Control Module (BCM) übermittelt. -
EXTERNAL_CAR_TIME
, um Android nicht als Quelle der Wahrheit für die Zeit zu verwenden. In diesem Fall unterstützt VHAL die schreibgeschützteEXTERNAL_CAR_TIME
-Eigenschaft, die Zeitänderungen von anderen Fahrzeugsystemen (z. B. ECUs und BCM) an Android übermittelt.
AAOS bietet auch eine konfigurierbare TimeDetectorStrategy
, die Ihnen hilft, verschiedene Zeitquellen in Android zu priorisieren.
Android ist die Quelle der Wahrheit für die Zeit
Wenn Android als Zeitquelle verwendet wird, können OEMs andere Fahrzeugsysteme (einschließlich ECUs und ein BCM) mit der Android-Zeit synchronisieren.
Dazu muss die VHAL-Implementierung die schreibgeschützte Eigenschaft ANDROID_EPOCH_TIME
. Android veröffentlicht ein Update für die Eigenschaft, indem es die Systemzeit liest, sowohl beim Booten als auch immer dann, wenn die Zeitquelle in Android geändert wird.
Android ist nicht die Quelle der Wahrheit für die Zeit
Wenn Android nicht als Zeitquelle verwendet wird, können Sie die Android-Zeit als Quelle der Wahrheit für die Zeit synchronisieren (z. B. mit einem ECU oder dem BCM). In diesem Fall muss die VHAL-Implementierung die schreibgeschützte Eigenschaft EXTERNAL_CAR_TIME
unterstützen und Aktualisierungen dieser Eigenschaft veröffentlichen, wenn sich die Zeitquelle ändert oder die Uhr neu kalibriert.
OEMs müssen außerdem sicherstellen, dass:
- die
config_autoTimeSourcesPriority
Werte sind incore/res/res/values/config.xml
. - die Eigenschaft
config_enableExternalCarTimeToExternalTimeSuggestion
in den CarServices-Overlay-Konfigurationspaketenpackages/services/Car/service/res/values/config.xml
) auftrue
gesetzt ist. - Die externe Zeit hat die entsprechende Priorität in der
TimeDetectorStrategy
Konfiguration. Weitere Informationen finden Sie unter GNSS-Zeiterfassung . Zum Beispiel:<!-- 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>
Details zur internen Android-Implementierung
Der folgende Ablauf findet statt, wenn die ANDROID_EPOCH_TIME
-Eigenschaft ANDROID_EPOCH_TIME unterstützt wird:
-
TimeHalService
(in CarServices) empfängt eine Sendung vom Android-System fürIntent.ACTION_TIME_CHANGED
. -
TimeHalService
veröffentlicht ein Update für die VHAL-EigenschaftANDROID_EPOCH_TIME
. - Die VHAL kann den empfangenen Zeitwert an verschiedene ECUs und/oder BCM-Einheiten weitergeben.
Der folgende Ablauf findet statt, wenn die EXTERNAL_CAR_TIME
-Eigenschaft EXTERNAL_CAR_TIME unterstützt wird:
- VHAL aktualisiert die Eigenschaft
EXTERNAL_CAR_TIME
. -
TimeHalService
(in CarServices) liest die Eigenschaft über ein Abonnement. -
TimeHalService
erstellt und sendet eineExternalTimeSuggestion
anTimeManager
. -
TimeManager
leitet den Vorschlag anTimeDetectorService
. -
TimeDetectorService
verwendetTimeDetectorStrategy
, um eine neue Systemzeit auszuwählen.