Com esse recurso, os parceiros podem escolher como sincronizar o horário, seja no Android Sistema operacional automotivo (AAOS) ou de sistemas veiculares para o Android. Para garantir implementações de qualidade, configure o AAOS para usar uma das duas novas propriedades VHAL descritas abaixo para propagar os valores de maneira eficaz. Usar:
ANDROID_EPOCH_TIME
para usar o Android como a fonte da verdade. por tempo. A VHAL é compatível com essa propriedade somente gravação, que informa mudanças de horário do Android para outros sistemas veiculares, como as Unidades de Controle Eletrônicos (ECU) e o Módulo de Controle do Corpo (BCM).EXTERNAL_CAR_TIME
para não usar o Android como origem. de verdade para o tempo. Nesse caso, a VHAL oferece suporte ao recurso somente leitura PropriedadeEXTERNAL_CAR_TIME
, que comunica mudanças de horário em relação a outros veículos (como ECUs e BCM) para o Android.
O AAOS também oferece um TimeDetectorStrategy
configurável para ajudar você a priorizar
diferentes fontes de tempo no Android.
O Android é a fonte da verdade para o tempo
Quando o Android é usado como fonte de tempo, os OEMs podem sincronizar outros sistemas veiculares (incluindo ECUs e BCM) com o horário do Android.
Para isso, a implementação da VHAL precisa oferecer suporte à propriedade somente gravação
propriedade ANDROID_EPOCH_TIME
. O Android publica uma atualização na propriedade lendo
no horário do sistema, tanto no momento da inicialização quanto sempre que a fonte de horário no Android for alterada.
O Android não é a fonte da verdade para o tempo
Quando o Android não é usado como fonte de hora, você pode sincronizar o horário do Android
ser a fonte de verdade do tempo (por exemplo, com uma ECU ou BCM). Nesse caso, o
A implementação da VHAL precisa oferecer suporte à propriedade somente leitura EXTERNAL_CAR_TIME
e publicar
será atualizado para esta propriedade sempre que a fonte de hora mudar ou recalibrar o relógio.
Os OEMs também precisam garantir que:
- Os valores
config_autoTimeSourcesPriority
estão contidos emcore/res/res/values/config.xml
. - A propriedade
config_enableExternalCarTimeToExternalTimeSuggestion
na Configurações de sobreposição do CarServicespackages/services/Car/service/res/values/config.xml
é definido comotrue
. - A hora
external
tem a prioridade apropriada naTimeDetectorStrategy
. Para saber mais, consulte Detecção de horário do GNSS. 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 da implementação interna do Android
O fluxo a seguir ocorre quando a propriedade VHAL ANDROID_EPOCH_TIME
é
suportado:
- O
TimeHalService
(no CarServices) recebe uma transmissão do sistema Android paraIntent.ACTION_TIME_CHANGED
. TimeHalService
publica uma atualização na propriedade VHALANDROID_EPOCH_TIME
.- A VHAL pode propagar o valor de tempo recebido para várias ECUs e/ou unidades de BCM.
O fluxo a seguir ocorre quando a propriedade VHAL EXTERNAL_CAR_TIME
é
suportado:
- A VHAL atualiza a propriedade
EXTERNAL_CAR_TIME
. TimeHalService
(no CarServices) lê a propriedade usando uma assinatura.TimeHalService
cria e envia umExternalTimeSuggestion
paraTimeManager
TimeManager
encaminha a sugestão paraTimeDetectorService
.- O
TimeDetectorService
usa oTimeDetectorStrategy
para escolher no horário do sistema.