Detecção de hora externa

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 é habilitado por padrão no AOSP.

A origem de hora externa permite que os fabricantes de dispositivos forneçam sugestões de hora completamente personalizadas para o Android. Após 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 dar 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 instrui o Android a dar às sugestões externas de horário a maior prioridade ao configurar o relógio do sistema. Se não houver nenhuma sugestão de tempo externa válida disponível, então a próxima origem, gnss neste caso, é usada.

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

Para fornecer ao sistema uma sugestão de horário externa, use o método suggestExternalTime() no TimeManager . Se a origem externa estiver 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 passado para esse método para definir o horário de época atual do Unix.