Detecção de horário externo

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

A origem de tempo externa permite fornecer sugestões de tempo totalmente personalizadas para o Android. Depois de receber sugestões da origem de tempo externa, o serviço time_detector determina se o relógio do sistema precisa ser atualizado com base nas regras de priorização automática de tempo configuradas.

Implementação

Para oferecer suporte à detecção de hora externa, implemente um componente que envie sugestões de hora externa ao serviço time_detector por 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 para dar às sugestões de horário externas a prioridade mais alta ao definir o relógio do sistema. Se não houver uma sugestão de horário externa válida, a próxima origem, gnss neste caso, será usada:

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

Para fornecer ao sistema uma sugestão de horário externo, use o método suggestExternalTime 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 a esse método para definir a época Unix atual.