Обнаружение внешнего времени

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