Начиная с 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.