Начиная с Android 12, Android может дополнительно использовать внешний источник времени, чтобы предлагать время эпохи Unix службе time_detector
. По умолчанию в AOSP это не включено.
Внешнее происхождение времени позволяет производителям устройств предоставлять Android полностью индивидуальные предложения времени. После получения предложений от внешнего источника времени служба time_detector
определяет, следует ли обновлять системные часы, используя настроенные правила расстановки приоритетов .
Выполнение
Для поддержки внешнего определения времени производители устройств должны реализовать компонент, который отправляет внешние предложения времени в службу time_detector
через вызов системного API.
Чтобы настроить внешний источник, используйте файл конфигурации системного сервера core/res/res/values/config.xml
. Добавьте значение external
в config_autoTimeSourcesPriority
.
В следующем примере Android сообщается, что внешние предложения по времени имеют наивысший приоритет при настройке системных часов. Если нет действительного внешнего предложения времени, то используется следующий источник, в данном случае gnss
.
<string-array name="config_autoTimeSourcesPriority">
<item>external</item>
<item>gnss</item>
</string-array>
Чтобы предоставить системе внешнее предложение времени, используйте метод suggestExternalTime()
в TimeManager
. Если внешний источник настроен с помощью config_autoTimeSourcesPriority
в файле конфигурации и предложения времени с более высоким приоритетом недоступны, Android использует метку времени, переданную этому методу, для установки текущего времени эпохи Unix.