Внешнее определение времени

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