A partir do Android 12, o Android pode usar uma fonte
externa de tempo para sugerir tempos de época Unix ao
serviço time_detector
. Essa opção não
fica ativada 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 tempo externo, os fabricantes de dispositivos precisam implementar um
componente que envie sugestões de tempo 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 a seguir informa ao Android que sugestões de horário externo têm a
prioridade mais alta 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
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 estiver configurada usando
config_autoTimeSourcesPriority
no arquivo de configuração e nenhuma sugestão de tempo de prioridade
mais alta estiver disponível, o Android vai usar o
carimbo de data/hora transmitido para esse método para definir o tempo de época Unix atual.