Configurar origens de horário do AAOS

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 Propriedade EXTERNAL_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 em core/res/res/values/config.xml.
  • A propriedade config_enableExternalCarTimeToExternalTimeSuggestion na Configurações de sobreposição do CarServices packages/services/Car/service/res/values/config.xml é definido como true.
  • A hora external tem a prioridade apropriada na TimeDetectorStrategy. 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:

  1. O TimeHalService (no CarServices) recebe uma transmissão do sistema Android para Intent.ACTION_TIME_CHANGED.
  2. TimeHalService publica uma atualização na propriedade VHAL ANDROID_EPOCH_TIME.
  3. 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:

  1. A VHAL atualiza a propriedade EXTERNAL_CAR_TIME.
  2. TimeHalService (no CarServices) lê a propriedade usando uma assinatura.
  3. TimeHalService cria e envia um ExternalTimeSuggestion para TimeManager
  4. TimeManager encaminha a sugestão para TimeDetectorService.
  5. O TimeDetectorService usa o TimeDetectorStrategy para escolher no horário do sistema.