Mit dieser Funktion können Partner wählen, wie die Zeit synchronisiert werden soll, sei es vom Android Automotive Operating System (AAOS) oder von Fahrzeugsystemen mit Android. Um qualitativ hochwertige Implementierungen sicherzustellen, können Sie AAOS so konfigurieren, dass es eine der beiden neuen VHAL-Eigenschaften verwendet, die unten beschrieben werden, um die Werte effektiv weiterzugeben. Verwenden:
-
ANDROID_EPOCH_TIME
, um Android als Quelle der Wahrheit für die Zeit zu verwenden . Der VHAL unterstützt diese schreibgeschützte Eigenschaft, die Zeitänderungen von Android an andere Fahrzeugsysteme, wie z. B. die elektronischen Steuereinheiten (ECU) und das Body Control Module (BCM), kommuniziert. -
EXTERNAL_CAR_TIME
, um Android nicht als Quelle der Wahrheit für die Zeit zu verwenden . In diesem Fall unterstützt die VHAL die schreibgeschützte EigenschaftEXTERNAL_CAR_TIME
, die Zeitänderungen von anderen Fahrzeugsystemen (wie Steuergeräten und BCM) an Android kommuniziert.
AAOS bietet außerdem eine konfigurierbare TimeDetectorStrategy
die Ihnen dabei 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 Steuergeräte und ein BCM) mit der Android-Zeit synchronisieren.
Dazu muss die VHAL-Implementierung die schreibgeschützte Eigenschaft ANDROID_EPOCH_TIME
unterstützen. Android veröffentlicht ein Update der 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 synchronisieren, um als wahre Zeitquelle zu dienen (z. B. mit einem Steuergerät 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 Folgendes sicherstellen:
- Die
config_autoTimeSourcesPriority
-Werte sind incore/res/res/values/config.xml
enthalten. - Die Eigenschaft
config_enableExternalCarTimeToExternalTimeSuggestion
in den CarServices-Overlay-packages/services/Car/service/res/values/config.xml
ist auftrue
gesetzt. - Externe Zeit hat in der
TimeDetectorStrategy
Konfiguration die entsprechende 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 Android-Implementierung
Der folgende Ablauf findet statt, wenn die VHAL-Eigenschaft ANDROID_EPOCH_TIME
unterstützt wird:
-
TimeHalService
(in CarServices) empfängt eine Übertragung vom Android-System fürIntent.ACTION_TIME_CHANGED
. -
TimeHalService
veröffentlicht ein Update der VHAL-EigenschaftANDROID_EPOCH_TIME
. - Der VHAL kann den empfangenen Zeitwert an verschiedene Steuergeräte und/oder BCM-Einheiten weitergeben.
Der folgende Ablauf findet statt, wenn die VHAL-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 einenExternalTimeSuggestion
anTimeManager
. -
TimeManager
leitet den Vorschlag anTimeDetectorService
weiter. -
TimeDetectorService
verwendetTimeDetectorStrategy
um eine neue Systemzeit auszuwählen.