Эта функция позволяет партнерам выбирать, как синхронизировать время: с автомобильной операционной системы Android (AAOS) или с автомобильных систем на Android. Чтобы обеспечить качественную реализацию, вы можете настроить AAOS на использование одного из двух новых свойств VHAL, описанных ниже, для эффективного распространения значений. Использовать:
-
ANDROID_EPOCH_TIME
чтобы использовать Android как источник информации о времени. VHAL поддерживает это свойство только для записи , которое передает изменения времени от Android к другим системам автомобиля, таким как электронные блоки управления (ECU) и модуль управления кузовным оборудованием (BCM). -
EXTERNAL_CAR_TIME
чтобы не использовать Android в качестве источника информации о времени. В этом случае VHAL поддерживает свойствоEXTERNAL_CAR_TIME
доступное только для чтения , которое передает изменения времени от других систем автомобиля (таких как ECU и BCM) в Android.
AAOS также предоставляет настраиваемую TimeDetectorStrategy
, которая поможет вам расставить приоритеты для различных источников времени в Android.
Android — источник истины для времени
Когда Android используется в качестве источника времени, OEM-производители могут синхронизировать другие автомобильные системы (включая ECU и BCM) со временем Android.
Для этого реализация VHAL должна поддерживать свойство ANDROID_EPOCH_TIME
, доступное только для записи . Android публикует обновление свойства, считывая системное время, как во время загрузки, так и при каждом изменении источника времени в Android.
Android — не источник истины для времени
Когда Android не используется в качестве источника времени, вы можете синхронизировать время Android, чтобы оно было источником достоверных данных о времени (например, с ECU или BCM). В этом случае реализация VHAL должна поддерживать свойство EXTERNAL_CAR_TIME
доступное только для чтения, и публиковать обновления этого свойства всякий раз, когда источник времени меняет или перекалибровывает часы.
OEM-производители также должны гарантировать, что:
- Значения
config_autoTimeSourcesPriority
содержатся вcore/res/res/values/config.xml
. - Для свойства
config_enableExternalCarTimeToExternalTimeSuggestion
в наложенных конфигурациях CarServicespackages/services/Car/service/res/values/config.xml
установлено значениеtrue
. -
external
время имеет соответствующий приоритет в конфигурацииTimeDetectorStrategy
. Дополнительную информацию см. в разделе Определение времени GNSS . Например:<!-- 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>
Подробности внутренней реализации Android
Следующий поток имеет место, когда поддерживается свойство VHAL ANDROID_EPOCH_TIME
:
-
TimeHalService
(в CarServices) получает широковещательную рассылку от системы Android дляIntent.ACTION_TIME_CHANGED
. -
TimeHalService
публикует обновление свойства VHALANDROID_EPOCH_TIME
. - VHAL может передавать полученное значение времени различным блокам ECU и/или BCM.
Следующий поток имеет место, когда поддерживается свойство VHAL EXTERNAL_CAR_TIME
:
- VHAL обновляет свойство
EXTERNAL_CAR_TIME
. -
TimeHalService
(в CarServices) считывает свойство посредством подписки. -
TimeHalService
создает и отправляетExternalTimeSuggestion
вTimeManager
. -
TimeManager
пересылает предложение вTimeDetectorService
. -
TimeDetectorService
используетTimeDetectorStrategy
для выбора нового системного времени.