Mit dieser Funktion können Partner auswählen, wie die Zeit synchronisiert werden soll – entweder vom Android Automotive Operating System (AAOS) oder von Fahrzeugsystemen mit Android. Für eine erfolgreiche Implementierung können Sie AAOS so konfigurieren, dass eine der beiden unten beschriebenen neuen VHAL-Properties verwendet wird, um die Werte effektiv zu übertragen. Verwendung:
ANDROID_EPOCH_TIME
, um Android als Zeitquelle zu verwenden. Die VHAL unterstützt diese schreibgeschützte Eigenschaft, über die Zeitänderungen von Android an andere Fahrzeugsysteme wie die elektronischen Steuergeräte (ECU) und das Body Control Module (BCM) gesendet werden.EXTERNAL_CAR_TIME
, Android nicht als „Source of Truth“ für die Zeit zu verwenden. In diesem Fall unterstützt die VHAL die schreibgeschützte PropertyEXTERNAL_CAR_TIME
, über die Zeitänderungen von anderen Fahrzeugsystemen (z. B. ECUs und BCMs) an Android gesendet werden.
AAOS bietet außerdem eine konfigurierbare TimeDetectorStrategy
, mit der Sie verschiedene Zeitquellen in Android priorisieren können.
Android ist die „Source of Truth“ für die Zeit
Wenn Android als Zeitquelle verwendet wird, können OEMs andere Fahrzeugsysteme (einschließlich ECUs und BCMs) mit der Android-Zeit synchronisieren.
Dazu muss die VHAL-Implementierung die schreibgeschützte Property ANDROID_EPOCH_TIME
unterstützen. Android veröffentlicht ein Update für die Property, indem die Systemzeit gelesen wird, sowohl beim Starten als auch jedes Mal, wenn die Zeitquelle in Android geändert wird.
Android ist nicht die primäre Zeitquelle
Wenn Android nicht als Zeitquelle verwendet wird, können Sie die Android-Zeit mit einer anderen Zeitquelle synchronisieren, z. B. mit einem Steuergerät oder dem BCM. In diesem Fall muss die VHAL-Implementierung die schreibgeschützte Property EXTERNAL_CAR_TIME
unterstützen und Aktualisierungen für diese Property veröffentlichen, wenn sich die Zeitquelle ändert oder die Uhr neu kalibriert wird.
OEMs müssen außerdem Folgendes sicherstellen:
- Die
config_autoTimeSourcesPriority
-Werte sind incore/res/res/values/config.xml
enthalten. - Die Property
config_enableExternalCarTimeToExternalTimeSuggestion
in denpackages/services/Car/service/res/values/config.xml
-Overlay-Konfigurationen von CarServices ist auftrue
festgelegt. - Die
external
-Zeit hat in derTimeDetectorStrategy
-Konfiguration die richtige Priorität. Weitere Informationen finden Sie unter GNSS-Zeiterkennung. 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 Implementierung von Android
Wenn die VHAL-Eigenschaft ANDROID_EPOCH_TIME
unterstützt wird, geschieht Folgendes:
TimeHalService
(in CarServices) empfängt eine Übertragung vom Android-System fürIntent.ACTION_TIME_CHANGED
.TimeHalService
veröffentlicht ein Update für die VHAL-PropertyANDROID_EPOCH_TIME
.- Die VHAL kann den empfangenen Zeitwert an verschiedene ECUs und/oder BCM-Einheiten weitergeben.
Wenn die VHAL-Eigenschaft EXTERNAL_CAR_TIME
unterstützt wird, geschieht Folgendes:
- VHAL aktualisiert die Property
EXTERNAL_CAR_TIME
. TimeHalService
(in CarServices) liest das Attribut über ein Abo.TimeHalService
erstellt und sendet eineExternalTimeSuggestion
anTimeManager
.TimeManager
leitet den Vorschlag anTimeDetectorService
weiter.TimeDetectorService
verwendetTimeDetectorStrategy
, um eine neue Systemzeit auszuwählen.