Обзор времени

На этой странице описывается, как определение времени и часового пояса работает на Android. Это включает в себя то, как Android автоматически определяет время и часовые пояса, параметры конфигурации для производителей устройств и информацию о тестировании.

Обзор времени и часовых поясов

Чтобы определить местное время пользователя для отображения в таких местах, как строка состояния, Android отслеживает два связанных, но независимых состояния:

  • Текущее время эпохи Unix
  • Текущий часовой пояс

Текущее время эпохи Unix и текущий часовой пояс являются состояниями устройства, что означает, что они являются общими для всех пользователей устройства.

Текущее время эпохи Unix не является фиксированным значением. Он обновляется автоматически, чтобы отразить течение времени. Помимо обычного течения времени, текущее время эпохи Unix устройства корректируется, если оно оказывается неверным, например, после отключения питания устройства.

Текущий часовой пояс определяет настройку, которую необходимо выполнить для преобразования текущего времени эпохи Unix в местное время. Например, летом в Лос-Анджелесе устройство вычитает 7 часов из текущего времени эпохи Unix, а зимой — 8 часов.

Для поддержки этих расчетов местного времени все устройства Android имеют базу данных всех правил глобального часового пояса . Дополнительные сведения о правилах часовых поясов см. в разделе Правила часовых поясов.

Когда пользователь перемещается в новое место с другим часовым поясом, текущее время эпохи Unix не нужно корректировать, но пользователь обычно хочет видеть местное время, а не время в своем предыдущем местоположении. Изменение текущего часового пояса гарантирует, что к текущему времени эпохи Unix будет применено правильное смещение для отображения правильного местного времени для нового местоположения.

AOSP позволяет пользователям независимо контролировать, устанавливаются ли для них время и часовой пояс автоматически, с помощью следующих механизмов.

  • Автоматическое определение времени: гарантирует, что устройство имеет правильное текущее время эпохи Unix.
  • Автоматическое определение часового пояса: гарантирует, что устройство имеет правильный текущий часовой пояс.

Автоматическое определение времени

В этом разделе представлен обзор службы time_detector , которая управляет автоматическим определением времени, пользовательскими элементами управления, параметрами конфигурации и подробностями тестирования.

Сервис time_detector

Служба time_detector , присутствующая на устройствах под управлением Android 10 или выше, управляет автоматическим определением времени. Он корректирует текущее время эпохи Unix устройства по мере необходимости, когда включено автоматическое определение времени.

Сервис time_detector всегда находится в одном из двух состояний: неопределенном или определенном . Определенное или неопределенное состояние службы определяется рекомендациями по времени , которые она получает из различных источников.

Когда служба time_detector определена, что означает, что она получила предложение с информацией о времени эпохи Unix, она переопределяет текущее время эпохи Unix, если предложение времени отличается от текущего времени эпохи Unix.

Когда time_detector не определен, он не переопределяет текущее время. Неопределенное состояние обычно означает, что служба time_detector не получила предложений по времени. Служба time_detector также становится неопределенной, если полученные ею предложения считаются слишком старыми для использования. Возраст предложений учитывается, потому что корректировки с использованием старых предложений времени эпохи Unix основаны на истекших часах реального времени на устройстве, которые считаются неточными в течение длительных периодов времени.

Чтобы автоматически установить текущее время эпохи Unix, устройство может использовать различные источники. В этом документе они называются источниками . Служба time_detector обрабатывает последовательности предложений как отдельные в зависимости от их происхождения.

Служба time_detector состояние, что означает, что она хранит записи о самых последних предложениях, сделанных каждым источником. В time_detector новые предложения, если источник имеет более позднюю доступную информацию о времени эпохи Unix. Служба time_detector повторно оценивает новые и существующие предложения и обновляет состояние устройства при получении предложений.

Хотя время UTC согласовано на международном уровне, существуют различные причины, по которым определение текущего времени эпохи Unix не всегда просто для устройства Android:

  • Время эпохи Unix немного отличается от времени UTC. Преобразование между ними требует знания того, когда возникают дополнительные секунды и как они обрабатываются источниками.
  • Истоки могут быть доступны только в определенное время или при определенных обстоятельствах. Например, если для источника требуется подключение к сети, оно может быть доступно только тогда, когда устройство подключено к Интернету.
  • Источники могут быть неточными или неточными, или содержать ошибки. Например, если телефонная вышка сотовой связи неправильно отслеживает «универсальное время», источник телефонии может давать неточные рекомендации по времени.
  • При получении времени эпохи Unix могут быть внесены неточности. Например, сетевая задержка, буферизация или планирование процессов могут привести к тому, что время эпохи Unix будет неточным.
  • Опорные часы, используемые для корректировки предложения по времени, прошедшему с момента получения предложения, могут быть неточными.

В AOSP по умолчанию настроено два основных источника определения времени:

  • Телефония: использует сигналы телефонии Network Identity and Time Zone (NITZ).
  • Сеть: использует серверы времени Network Time Protocol (NTP).

И для телефонии, и для сетевых источников требуется подключение к внешним сетям, которые не всегда доступны.

Начиная с Android 12, Android также поддерживает следующие источники, которые не настроены для использования по умолчанию:

  • GNSS : использует поставщика местоположения GPS для получения времени из источника GNSS.
  • Внешний : общий источник, который позволяет производителям устройств интегрировать свой собственный источник времени эпохи Unix.

Настройки времени

Пользователи могут включить автоматическое определение времени в разделе « Система» > «Дата и время» в приложении «Настройки AOSP».

Автоматическое определение времени в настройках

Рис. 1. Автоматическое определение времени в настройках.

В следующей таблице описаны пользовательские элементы управления для определения времени в приложении Настройки AOSP.

* В Android 11 и более ранних версиях этот параметр помечен как « Использовать время, предоставленное сетью» .

Расположение настроек AOSP Имя настроек AOSP Сфера Поведение
Система > Дата и время Установить время автоматически* Все пользователи

Переключатель.

Когда включено , устройство отвечает за определение текущего времени эпохи Unix. Когда выключено , пользователям предоставляются элементы управления для ручной установки времени устройства.

Когда пользователь вводит время вручную, он вводит свое местное время, а не время эпохи Unix. Текущее время эпохи Unix рассчитывается с использованием текущего часового пояса для получения времени эпохи Unix.

Конфигурация

Производители устройств могут по-разному настраивать службу time_detector , например, какие источники использовать и как расставлять приоритеты для сигналов от них.

Приоритет происхождения

Начиная с Android 12, производители устройств могут изменить файл конфигурации core/res/res/values/config.xml , чтобы указать, какие источники времени следует включать в автоматическое определение времени, а также приоритет, с которым time_detector рассматривает эти источники.

Для устройств под управлением Android 11 или более ранней версии приоритет источника жестко задан ["telephony", "network"] , что означает, что предложения телефонии имеют приоритет над предложениями сети.

Конфигурация AOSP по умолчанию выглядит следующим образом:

<!-- Specifies priority of automatic time sources. Suggestions from higher entries in the list
     take precedence over lower ones.
     See com.android.server.timedetector.TimeDetectorStrategy for available sources. -->
<string-array name="config_autoTimeSourcesPriority">
    <item>network</item>
    <item>telephony</item>
</string-array>

В Android 12 предложения сети и телефонии настроены как источники для использования по умолчанию. Предложения времени сети имеют приоритет над предложениями времени телефонии. Производители устройств могут изменить порядок источников, чтобы вернуться к поведению в Android 11 или более ранней версии, где телефонии отдается более высокий приоритет.

По умолчанию, если действительное предложение с наивысшим приоритетом соответствует текущему системному времени устройства с точностью до нескольких секунд, время устройства не будет изменено. Это делается для того, чтобы не создавать работу для установленных приложений, которые прослушивают намерение ACTION_TIME_CHANGED .

Допустимые исходные значения:

Нижняя граница времени

В Android 12 введена более низкая граница времени, которая используется для проверки предложений времени, полученных службой time_detector . Нижняя временная граница устанавливается на основе временной метки сборки. Это работает по тому принципу, что допустимое время не может быть до создания образа системы устройства. Если предложение времени находится перед нижней границей времени, служба time_detector предложение, поскольку оно не может быть действительным, если метка времени сборки верна.

Для устройств под управлением Android 11 или более ранней службы time_detector не проверяет входящие предложения времени эпохи Unix.

Android не применяет верхнюю границу времени.

Время отладки и тестирования

В этом разделе содержится информация о том, как отлаживать и тестировать поведение службы time_detector и других компонентов, общих для всех источников.

Взаимодействие с сервисом time_detector

Чтобы просмотреть конфигурацию службы time_detector и состояние службы time_detector , используйте:

adb shell cmd time_detector dump

Чтобы увидеть дополнительные команды для отладки и тестирования определения часового пояса, используйте:

adb shell cmd time_detector help

Выходные данные справки также описывают свойства службы device_config, которые можно использовать для воздействия на поведение time_detector при тестировании или в рабочей среде. Подробнее см. в разделе Настройка устройства с помощью сервиса device_config .

Чтобы проверить автоматическое определение времени, тестировщики должны знать, какие источники использует служба time_detector . Ниже приведен пример вывода adb shell cmd time_zone_detector dump с информацией о текущем источнике и состоянии службы, выделенной полужирным шрифтом:

$ adb shell cmd time_detector dump

TimeDetectorStrategy:
  mLastAutoSystemClockTimeSet=null
  mEnvironment.isAutoTimeDetectionEnabled()=true
  mEnvironment.elapsedRealtimeMillis()=23717241
  mEnvironment.systemClockMillis()=1626707861336
  mEnvironment.systemClockUpdateThresholdMillis()=2000
  mEnvironment.autoTimeLowerBound()=2021-07-19T07:48:05Z(1626680885000)
  mEnvironment.autoOriginPriorities()=[network,telephony]
  Time change log:
    ...
  Telephony suggestion history:
    ...
  Network suggestion history:
    ...
  Gnss suggestion history:
    ...
  External suggestion history:
    ...

Информацию можно интерпретировать следующим образом:

Ключ Ценность
mEnvironment.isAutoTimeDetectionEnabled() Включено ли автоматическое определение времени.
mEnvironment.autoTimeLowerBound() Текущая нижняя граница, используемая для проверки предложений по времени.
mEnvironment.autoOriginPriorities() Происхождение в использовании и порядок приоритета.

Журнал изменения времени указывает случаи, когда служба time_detector изменила текущее время эпохи Unix устройства.

Информация об истории предложений показывает, какие предложения были сделаны каждым источником.

Автоматическое определение часового пояса

В этом разделе представлен обзор службы time_zone_detector , которая управляет автоматическим определением часового пояса, пользовательскими элементами управления в настройках, определением часового пояса телефонии и местоположения, а также подробностями тестирования.

Служба time_zone_detector

Служба time_zone_detector , присутствующая на устройствах под управлением Android 11 или более поздней версии, управляет автоматическим определением часового пояса. Он корректирует текущий часовой пояс устройства по мере необходимости, когда включено автоматическое определение часового пояса.

Когда автоматическое определение часового пояса включено, time_zone_detector может находиться в одном из двух состояний: « неопределенно » и « определенно ».

Когда служба time_zone_detector находится в определенном состоянии, это означает, что служба time_zone_detector получила достоверную информацию о часовом поясе, что может привести к переопределению текущего часового пояса. Когда он не определен, это означает, что он не получил никакой информации или получил только информацию с низкой достоверностью, что означает, что он не будет переопределять текущий часовой пояс.

Определенные состояния службы time_zone_detector могут включать в себя состояния, в которых time_zone_detector не имеет информации о часовом поясе для использования или когда у него есть несколько часовых поясов для выбора. Эти состояния следующие:

  • Определенное состояние с нулевым часовым поясом вводится, когда устройство находится где-то без часового пояса, например, в международных водах или в спорной зоне. Это состояние похоже на неопределенное состояние, но указывает, что time_zone_detector не нужно предпринимать никаких дальнейших действий, чтобы попытаться определить часовой пояс.
  • Определенное состояние с несколькими часовыми поясами вводится там, где есть неясность или граничные условия. В этом состоянии, если текущий часовой пояс является одним из часовых поясов, в отношении которых time_zone_detector уверен, текущий часовой пояс остается без изменений. В противном случае используется один из доступных часовых поясов. Это дает time_zone_detector элемент привязки, если пользователь вручную выбрал свой часовой пояс ранее или когда устройство приближается к границе.

Определенное или неопределенное состояние службы time_zone_detector определяется предложениями часового пояса , которые отправляются источником .

Как правило, предложения бывают двух типов, которые точно соответствуют возможным состояниям time_zone_detector : определенные и неопределенные . Ниже приведены примеры типов предложений:

  • тип = "неопределенный", zoneIds = []

    • Происхождение не знает, что такое часовой пояс.
  • type = "определенный", zoneIds = ["Европа/Лондон"]

    • Происхождение уверено, что зона "Европа/Лондон".
  • тип = "определенный", zoneIds = []

    • Источник определен, но нет идентификатора зоны, связанного с текущим местоположением.
  • type = "certain", zoneIds = ["Америка/Денвер", "Америка/Феникс"]

    • Происхождение уверено, что ответом является одна из двух зон, но не может выбрать между «Америкой/Денвером» и «Америкой/Фениксом».

Служба time_zone_detector обрабатывает последовательности предложений как отдельные в зависимости от их происхождения. В зависимости от источника предложения могут также содержать метаданные, указывающие на достоверность источника.

Служба time_zone_detector состояние, что означает, что она хранит записи о самых последних предложениях, сделанных каждым источником. Новые предложения отправляются в службу time_zone_detector , если предыдущее предложение больше не верно; то есть, если источник теперь имеет другое предложение или если он потерял способность определять часовой пояс. Служба time_zone_detector повторно оценивает новые и существующие предложения и обновляет состояние устройства при получении предложений.

Android поддерживает два источника для определения часового пояса:

  • Телефония
  • Расположение

Служба time_zone_detector использует только один источник для определения часового пояса. Когда источник местоположения поддерживается на устройстве, текущий источник для использования определяется на основе параметров часового пояса, настроенных пользователем. Когда текущий источник становится неуверенным в часовом поясе, time_zone_detector не использует предложения из другого источника. Предложения, связанные с источниками, помимо текущего источника, могут храниться в памяти с помощью time_zone_detector , но они не используются, пока не изменится текущий источник. Когда пользователь изменяет настройки автоматического определения часового пояса и изменяется текущее происхождение, используется самое последнее предложение, доступное для нового источника.

На устройствах под управлением Android 13 и выше служба time_zone_detector поддерживает резервный режим телефонии . Этот режим позволяет Android временно использовать предложения по обнаружению телефона в ситуациях, когда определение местоположения не может определить часовой пояс или когда определение местоположения занимает больше времени для определения часового пояса, чем определение телефонии.

Резервный режим телефонии применяется к устройствам, на которых поддерживаются как телефония, так и определение местоположения, и где пользователь включил параметр Использовать местоположение для установки часового пояса в настройках часового пояса . Режим включается автоматически при перезагрузке устройства и при отключении режима полета. В резервном режиме телефонии служба time_zone_detector использует предложения телефонии, как если бы обнаружение местоположения было отключено, пока источник местоположения не сделает определенное предложение. После получения определенного предложения резервный режим телефонии отключается, и используются исключительно предложения местоположения.

Подробные сведения о настройке резервного режима телефонии см. в разделе Настройка определения часового пояса .

Настройки часового пояса

Пользователи могут включить и настроить параметры автоматического определения часового пояса в приложении Настройки AOSP.

Автоматическое определение часового пояса в настройках

Рис. 2. Автоматическое определение часового пояса в настройках.

В следующей таблице описаны пользовательские элементы управления для определения часового пояса в приложении Настройки AOSP.

* В Android 11 и более ранних версиях этот параметр помечен как « Использовать часовой пояс, предоставленный сетью» .

Расположение настроек AOSP Имя настроек AOSP Сфера Поведение
Система > Дата и время Установить часовой пояс автоматически* Все пользователи

Переключатель.

Когда включено , устройство отвечает за определение текущего часового пояса. Когда выключено , пользователям предоставляются элементы управления для ручной установки часового пояса устройства.

Система > Дата и время Использовать местоположение для установки часового пояса Текущий пользователь

Переключатель.

Доступно в Android 12. Этот переключатель отображается только в том случае, если на устройстве поддерживается определение часового пояса местоположения.

Расположение Использовать местоположение Текущий пользователь

Переключатель.

Разрешает или запрещает использование местоположения устройства в целом. Значение актуально, если на устройстве поддерживается определение часового пояса местоположения.

Ниже представлен обзор поведения устройства при определении часового пояса с учетом настроек, выбранных пользователем:

  • [Дата и время] Автоматическая установка часового пояса: ВЫКЛ.

    • Пользователь должен вручную выбрать часовой пояс.
  • [Дата и время] Автоматическая установка часового пояса: ВКЛ.

    • [Местоположение] Использовать местоположение: ВЫКЛ.

      • Сигналы телефонии используются для определения часового пояса. (См. примечание ниже.)
    • [Местоположение] Использовать местоположение: ВКЛ.

      • [Дата и время] Использовать местоположение для установки часового пояса: ВКЛ.

        • Местоположение используется для определения часового пояса.
      • [Дата и время] Использовать местоположение для установки часового пояса: ВЫКЛ.

        • Сигналы телефонии используются для определения часового пояса. (См. примечание ниже.)

Несколько пользовательских устройств

Поскольку некоторые задействованные параметры относятся к текущему пользователю, поведение устройства при определении часового пояса может измениться при смене текущего пользователя на многопользовательском устройстве Android.

Переключатель « Использовать местоположение для установки часового пояса » относится к текущему пользователю и не ограничивается политикой устройства, что означает, что пользователи всегда могут изменить его значение, даже если автоматический переключатель «Установить часовой пояс » отключен или если другие элементы управления временем или часовым поясом ограничены контроллером политики устройств.

Поведение при переключении на автоматическое обнаружение и обратно

Когда пользователь переключает определение часового пояса с ручного на автоматическое , time_zone_detector может уже быть уверенным в текущем часовом поясе. Если это так, поскольку пользователь включает автоматическое определение, часовой пояс устройства может быть изменен одновременно, чтобы соответствовать мнению службы time_zone_detector .

Точно так же, когда пользователь вносит изменения в настройки, которые приводят к изменению текущего источника службы time_zone_detector , time_zone_detector может уже получить предложения для нового источника, поэтому время устройства может быть немедленно изменено, чтобы соответствовать мнению службы time_zone_detector .

Определение часового пояса телефонии

Определение часового пояса телефонии использует сигналы телефонии для определения текущего часового пояса. Дополнительные сведения см. в разделе Определение часового пояса телефонии .

Определение часового пояса местоположения

Определение часового пояса местоположения доступно на Android 12 или более поздней версии. Это дополнительная функция автоматического определения часового пояса, которая позволяет устройствам использовать свое местоположение для определения текущего часового пояса.

Служба location_time_zone_manager , представленная в Android 12, работает на системном сервере и содержит код, отвечающий за отправку предложений источника местоположения в службу time_zone_detector . Дополнительные сведения см. в разделе Определение часового пояса местоположения .

Рекомендации по внедрению функций

В этом разделе описываются аспекты функции определения часового пояса местоположения, чтобы помочь изготовителю устройства определить, следует ли использовать эту функцию на устройстве.

Сравнение телефонии и определения местоположения

В следующей таблице представлено сравнение преимуществ и недостатков использования сигналов местоположения, а не телефонных сигналов для определения часового пояса.

Обнаружение телефонии Определение местоположения
Правильность Зависит от страны.

Зависит от MCC, правильности и доступности NITZ.
Зависит от конфигурации функции или подключаемых компонентов.

Правильность обычно зависит от:
  • Точность и регулярность провайдера местоположения.
  • Качество данных карты часовых поясов.
Возможность обновления Обнаружение телефонии зависит от файлов, содержащихся в обновляемом модуле данных часового пояса (com.android.tzdata APEX). Зависит от конфигурации функции или подключаемых компонентов.

Возможность обновления обычно зависит от того, использует ли устройство данные карты часовых поясов сервера или клиента.

Примечание. Данные карты часовых поясов не содержатся в модуле данных часовых поясов, используемом для обновления копии TZDB для Android и другой информации о часовых поясах.

Производители устройств также должны учитывать согласованность версий между правилами часовых поясов и данными карты часовых поясов.
Энергопотребление Нет или низкое энергопотребление Зависит от настроек местоположения пользователя, используемых подключаемых модулей и, как правило, от того, какие другие приложения запрашивают местоположение.
Доступность Только телефонные устройства. Обычно требуется рабочая SIM-карта. Определение местоположения зависит от доступных провайдеров определения местоположения.
Конфиденциальность пользователя

Предпочтительный часовой пояс пользователя обычно определяется его географическим положением. Местоположение — конфиденциальные данные. Пользователи могут быть обеспокоены тем, что информация об их местоположении передается в рамках определения часового пояса. Независимо от определения часового пояса, все приложения, работающие на устройстве, могут считывать текущий часовой пояс устройства, не требуя разрешения Android, и приложения могут делать неточные выводы о местонахождении устройства на основе этой информации.

В частности, определение часового пояса может работать с помощью пассивных или активных средств:

  • Пассивный: что-то в среде устройства сообщает устройству часовой пояс, который следует использовать в этой среде.
  • Активный: устройство должно определить часовой пояс для себя и, в зависимости от настроек конфиденциальности пользователей и их согласия, получает для этого местоположение устройства. Затем он может поделиться своим местоположением с внешними службами. Подробнее о конфиденциальности и согласии пользователей см. в обсуждении ниже.

Пассивное обнаружение, например, с источником телефонии, не имеет дополнительных последствий для конфиденциальности пользователей.

Активное обнаружение, например с источником местоположения, включает в себя определение местоположения устройства, с которым пользователи могут не согласиться, и местоположение может быть отправлено по сети для определения идентификатора часового пояса.

Подход Android к конфиденциальности пользователей для определения часовых поясов дает пользователю возможность индивидуально отключать источники, которые, как ожидается, будут активными. Кроме того, код платформы AOSP не имеет прямого отношения к самому местоположению: определение местоположения и сопоставление местоположения с идентификаторами часовых поясов оставлены подключаемым компонентам, настроенным производителями устройств.

Дополнительные сведения о функциях конфиденциальности пользователей см. в разделе Определение часового пояса местоположения .

Конфигурация

Производители устройств могут настроить службу time_zone_detector , чтобы изменить ее поведение. В этом разделе описываются параметры конфигурации для общего поведения службы time_zone_detector . Подробные сведения о конфигурации источников обнаружения телефонии и часового пояса см. в разделах Определение часового пояса телефонии и Определение часового пояса местоположения .

Базовая конфигурация AOSP находится в frameworks/base/core/res/res/values/config.xml .

Ключ конфигурации Значение АОСП Описание
config_supportTelephonyTimeZoneFallback true При значении true `time_zone_detector` будет использовать резервный режим телефонии. Это присутствует на Android 13 и выше.

Отладка и тестирование часовых поясов

В этом разделе содержится информация о том, как отлаживать и тестировать поведение службы time_zone_detector и других компонентов, которые являются общими для всех источников.

Настройка устройства с помощью службы device_config

Служба device_config — это механизм, используемый в Android для настройки изменяемого поведения с использованием значений, которые обычно извлекаются с удаленного сервера с помощью проприетарного (не AOSP) кода. При использовании значений device_config для тестирования, особенно во время длительных ручных тестов, устройство может синхронизировать флаги, что приведет к сбросу флагов и очистке значений, установленных для тестирования.

В Android 12 или более поздней версии, чтобы временно предотвратить синхронизацию флагов, используйте:

adb shell cmd device_config set_sync_disabled_for_tests persistent

Чтобы восстановить синхронизацию флагов после тестов, используйте:

adb shell cmd device_config set_sync_disabled_for_tests none

После восстановления синхронизации флагов перезагрузите устройство.

Для получения дополнительной информации используйте справку $ adb shell cmd device_config help .

Взаимодействие с сервисом time_zone_detector

Чтобы просмотреть конфигурацию time_zone_detector и состояние службы time_zone_detector , используйте:

adb shell cmd time_zone_detector dump

Чтобы увидеть дополнительные команды для отладки и тестирования определения часового пояса, используйте:

adb shell cmd time_zone_detector help

Выходные данные справки также описывают свойства службы device_config , которые можно использовать для воздействия на поведение службы time_zone_detector при тестировании или в рабочей среде. Подробнее см. в разделе Настройка устройства с помощью сервиса device_config .

Чтобы проверить обнаружение часового пояса, тестеры должны знать, какое происхождение использует time_zone_detector . Чтобы понять и повлиять на текущее происхождение time_zone_detector , используйте один из следующих параметров:

  • Проверьте визуально через пользовательский интерфейс настроек. Дополнительные сведения см. в разделе Настройки часового пояса .
  • Используйте командную строку через adb:

    • Чтобы сбросить состояние time_zone_detector , используйте adb shell cmd time_zone_detector dump
    • Чтобы изменить настройку устройства, используйте другие команды time_zone_detector . Для получения дополнительной информации используйте справку adb shell cmd time_zone_detector help .

Ниже приведен пример вывода adb shell cmd time_zone_detector dump с информацией о текущем источнике и состоянии службы, выделенной полужирным шрифтом:

$ adb shell cmd time_zone_detector dump
TimeZoneDetectorStrategy:
  mEnvironment.getCurrentUserId()=0
  mEnvironment.getConfiguration(currentUserId)=ConfigurationInternal{mUserId=0, mUserConfigAllowed=true, mTelephonyDetectionSupported=true, mGeoDetectionSupported=true, mAutoDetectionEnabled=true, mLocationEnabled=true, mGeoDetectionEnabled=true}
  [Capabilities=TimeZoneCapabilitiesAndConfig{mCapabilities=TimeZoneDetectorCapabilities{mUserHandle=UserHandle{0}, mConfigureAutoDetectionEnabledCapability=40, mConfigureGeoDetectionEnabledCapability=40, mSuggestManualTimeZoneCapability=30}, mConfiguration=TimeZoneConfiguration{mBundle=Bundle[{geoDetectionEnabled=true, autoDetectionEnabled=true}]}}]
  mEnvironment.isDeviceTimeZoneInitialized()=true
  mEnvironment.getDeviceTimeZone()=Europe/London
  Time zone change log:
  Manual suggestion history:
...
  Geolocation suggestion history:
...
  Telephony suggestion history:
...

Информацию можно интерпретировать следующим образом:

Ключ Ценность
mUserConfigAllowed Запрещено ли пользователю управлять настройками даты и времени с помощью Device Policy Controller .
mTelephonyDetectionSupported Имеет ли устройство определение часового пояса телефонии.
mGeoDetectionSupported Имеет ли устройство определение часового пояса местоположения. Это эффективное состояние, основанное на конфигурации и наличии хотя бы одного LTZP.
mAutoDetectionEnabled Включено ли автоматическое определение часового пояса.
mLocationEnabled Переключатель основного местоположения.
mGeoDetectionEnabled Переключатель источника: «false» указывает источник телефонии, а «true» указывает источник местоположения.

Информация об истории предложений показывает, какие предложения были сделаны с помощью настроек (вручную), а также по источникам телефонии и местоположения.