No Android 12 e versões mais recentes, o Android tem a opção de usar uma fonte
de tempo externa para sugerir tempos de época Unix para o
serviço time_detector
. Isso não é
ativado por padrão no AOSP.
A origem de tempo externa permite que os fabricantes de dispositivos forneçam sugestões de tempo
personalizadas para o Android. Depois
de receber sugestões da origem de tempo externa, o serviço time_detector
determina se vai atualizar o relógio do sistema usando as
regras de priorização configuradas.
Implementação
Para oferecer suporte à detecção de horário externo, os fabricantes de dispositivos precisam implementar um
componente que envie sugestões de horário externo para o 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 abaixo instrui o Android a dar a
prioridade mais alta a sugestões de horário externo ao configurar 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
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 nenhuma sugestão de horário de prioridade
mais alta estiver disponível, o Android usará o
carimbo de data/hora transmitido a esse método para definir o horário da época Unix atual.