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