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.