Esse recurso permite que os parceiros escolham como sincronizar o horário, seja do sistema operacional Android Automotive (AAOS) ou de sistemas veiculares para Android. Para garantir implementações de qualidade, você pode configurar o AAOS para usar uma das duas novas propriedades VHAL descritas abaixo para propagar os valores de forma eficaz. Usar:
-
ANDROID_EPOCH_TIME
para usar o Android como fonte de verdade para o tempo. O VHAL oferece suporte a essa propriedade somente gravação , que comunica alterações de horário do Android para outros sistemas veiculares, como as Unidades de Controle Eletrônico (ECU) e o Módulo de Controle Corporal (BCM). -
EXTERNAL_CAR_TIME
para não usar o Android como fonte da verdade por um tempo. Nesse caso, o VHAL oferece suporte à propriedadeEXTERNAL_CAR_TIME
somente leitura , que comunica alterações de horário de outros sistemas veiculares (como ECUs e BCM) para o Android.
AAOS também fornece um TimeDetectorStrategy
configurável para ajudá-lo a priorizar diferentes fontes de tempo no Android.
Android é a fonte da verdade para o tempo
Quando o Android é usado como fonte de tempo, os OEMs podem sincronizar outros sistemas automotivos (incluindo ECUs e um BCM) com o horário do Android.
Para fazer isso, a implementação VHAL deve suportar a propriedade somente gravação ANDROID_EPOCH_TIME
. O Android publica uma atualização na propriedade lendo a hora do sistema, tanto no momento da inicialização quanto sempre que a fonte de hora no Android é alterada.
Android não é a fonte da verdade para o tempo
Quando o Android não é usado como fonte de tempo, você pode sincronizar a hora do Android para ser a fonte da verdade do tempo (por exemplo, com uma ECU ou BCM). Neste caso, a implementação VHAL deve suportar a propriedade somente leitura EXTERNAL_CAR_TIME
e publicar atualizações para esta propriedade sempre que a fonte do tempo mudar ou recalibrar o relógio.
Os OEMs também devem garantir que:
- Os valores
config_autoTimeSourcesPriority
estão contidos emcore/res/res/values/config.xml
. - A propriedade
config_enableExternalCarTimeToExternalTimeSuggestion
nas configurações de sobreposição CarServicespackages/services/Car/service/res/values/config.xml
está configurada comotrue
. - o horário
external
tem a prioridade apropriada na configuraçãoTimeDetectorStrategy
. Para saber mais, consulte Detecção de tempo GNSS . Por exemplo:<!-- 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>
Detalhes de implementação interna do Android
O seguinte fluxo ocorre quando a propriedade ANDROID_EPOCH_TIME
VHAL é suportada:
-
TimeHalService
(em CarServices) recebe uma transmissão do sistema Android paraIntent.ACTION_TIME_CHANGED
. -
TimeHalService
publica uma atualização para a propriedade VHALANDROID_EPOCH_TIME
. - O VHAL pode propagar o valor de tempo recebido para várias ECUs e/ou unidades BCM.
O seguinte fluxo ocorre quando a propriedade EXTERNAL_CAR_TIME
VHAL é suportada:
- VHAL atualiza a propriedade
EXTERNAL_CAR_TIME
. -
TimeHalService
(em CarServices) lê a propriedade por meio de uma assinatura. -
TimeHalService
cria e envia umExternalTimeSuggestion
paraTimeManager
. -
TimeManager
encaminha a sugestão paraTimeDetectorService
. -
TimeDetectorService
usaTimeDetectorStrategy
para escolher uma nova hora do sistema.