A partir do Android 12, o Android pode opcionalmente usar uma fonte externa de tempo para sugerir tempos de época do Unix para o serviço time_detector
. Isso não está habilitado por padrão no AOSP.
A origem de horário externa permite que os fabricantes de dispositivos forneçam sugestões de horário totalmente personalizadas para Android. Depois de receber sugestões da origem de horário externa, o serviço time_detector
determina se deve 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 devem implementar 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 diz ao Android para dar às sugestões de horário externo a prioridade mais alta ao definir o relógio do sistema. Se não houver nenhuma sugestão de horário externo válida disponível, então a próxima origem, neste caso, gnss
, 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 tempo de prioridade mais alta estiver disponível, o Android usará o carimbo de data/hora passado para esse método para definir o horário atual da época do Unix.