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

Начиная с Android 12, Android может опционально использовать внешний источник времени для предоставления службе Time Detector данных о времени в формате Unix epoch. В 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 epoch.