Detecção de horário externo

A partir do Android 12, o Android pode usar opcionalmente uma fonte de horário externa para sugerir horários de época Unix ao serviço de detector de horário. Essa opção não está ativada por padrão na AOSP.

A origem de horário externa permite que você forneça sugestões de horário totalmente personalizadas para o Android. Depois de receber sugestões da origem de horário externa, o time_detector serviço determina se deve atualizar o relógio do sistema com base em nas regras de priorização automática de horário configuradas.

Implementação

Para oferecer suporte à detecção de horário externo, implemente um componente que envie sugestões de horário externo ao serviço time_detector por meio de uma chamada de API do sistema.

Para configurar a origem externa, use o arquivo de configuração do servidor do sistema core/res/res/values/config.xml. Adicione o valor external a config_autoTimeSourcesPriority.

O exemplo a seguir informa ao Android que as sugestões de horário externo têm a maior prioridade ao definir o relógio do sistema. Se não houver uma sugestão de horário externo válida disponível, a próxima origem, gnss nesse caso, será usada:

<string-array name="config_autoTimeSourcesPriority">
        <item>external</item>
        <item>gnss</item>
</string-array>

Para fornecer uma sugestão de horário externo ao sistema, use o suggestExternalTime método em TimeManager. Se a origem externa for configurada usando config_autoTimeSourcesPriority no arquivo de configuração e não houver sugestões de horário de maior prioridade disponíveis, o Android usará o carimbo de data/hora transmitido para esse método para definir o horário de época Unix atual.