Esta característica permite a los socios elegir cómo sincronizar la hora, ya sea desde el sistema operativo automotriz Android (AAOS) o desde sistemas vehiculares con Android. Para garantizar implementaciones de calidad, puede configurar AAOS para utilizar una de las dos nuevas propiedades VHAL que se describen a continuación para propagar los valores de manera efectiva. Usar:
-
ANDROID_EPOCH_TIME
para usar Android como fuente de verdad por tiempo. VHAL admite esta propiedad de solo escritura , que comunica los cambios de hora de Android a otros sistemas vehiculares, como las unidades de control electrónico (ECU) y el módulo de control de la carrocería (BCM). -
EXTERNAL_CAR_TIME
para no utilizar Android como fuente de verdad por tiempo. En este caso, VHAL admite la propiedadEXTERNAL_CAR_TIME
de solo lectura , que comunica los cambios de hora de otros sistemas vehiculares (como ECU y BCM) a Android.
AAOS también proporciona una TimeDetectorStrategy
configurable para ayudarlo a priorizar diferentes fuentes de tiempo dentro de Android.
Android es la fuente de la verdad del tiempo.
Cuando se utiliza Android como fuente de hora, los OEM pueden sincronizar otros sistemas del automóvil (incluidas las ECU y un BCM) con la hora de Android.
Para hacerlo, la implementación de VHAL debe admitir la propiedad de solo escritura ANDROID_EPOCH_TIME
. Android publica una actualización de la propiedad leyendo la hora del sistema, tanto en el momento del arranque como cada vez que se cambia la fuente de hora en Android.
Android no es la fuente de la verdad por tiempo
Cuando no se utiliza Android como fuente de tiempo, puede sincronizar la hora de Android para que sea la fuente de verdad del tiempo (por ejemplo, con una ECU o el BCM). En este caso, la implementación de VHAL debe admitir la propiedad de solo lectura EXTERNAL_CAR_TIME
y publicar actualizaciones de esta propiedad cada vez que la fuente de tiempo cambie o recalibra el reloj.
Los OEM también deben garantizar que:
- Los valores
config_autoTimeSourcesPriority
están contenidos encore/res/res/values/config.xml
. - La propiedad
config_enableExternalCarTimeToExternalTimeSuggestion
en lospackages/services/Car/service/res/values/config.xml
configuración de superposición de CarServices está establecida entrue
. - el tiempo
external
tiene la prioridad adecuada en la configuraciónTimeDetectorStrategy
. Para obtener más información, consulte Detección de hora GNSS . Por ejemplo:<!-- 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>
Detalles de implementación interna de Android
El siguiente flujo tiene lugar cuando se admite la propiedad ANDROID_EPOCH_TIME
VHAL:
-
TimeHalService
(en CarServices) recibe una transmisión del sistema Android paraIntent.ACTION_TIME_CHANGED
. -
TimeHalService
publica una actualización de la propiedad VHALANDROID_EPOCH_TIME
. - El VHAL puede propagar el valor de tiempo recibido a varias ECU y/o unidades BCM.
El siguiente flujo tiene lugar cuando se admite la propiedad EXTERNAL_CAR_TIME
VHAL:
- VHAL actualiza la propiedad
EXTERNAL_CAR_TIME
. -
TimeHalService
(en CarServices) lee la propiedad mediante una suscripción. -
TimeHalService
crea y envía unaExternalTimeSuggestion
aTimeManager
. -
TimeManager
reenvía la sugerencia aTimeDetectorService
. -
TimeDetectorService
utilizaTimeDetectorStrategy
para elegir una nueva hora del sistema.