Начиная с 27 марта 2025 г. мы рекомендуем использовать android-latest-release
вместо aosp-main
для создания и участия в AOSP. Дополнительные сведения см. в разделе Изменения в AOSP .
Внешнее определение времени
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Начиная с 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.
Контент и образцы кода на этой странице предоставлены по лицензиям. Java и OpenJDK – это зарегистрированные товарные знаки корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-29 UTC.
[[["Прост для понимания","easyToUnderstand","thumb-up"],["Помог мне решить мою проблему","solvedMyProblem","thumb-up"],["Другое","otherUp","thumb-up"]],[["Отсутствует нужная мне информация","missingTheInformationINeed","thumb-down"],["Слишком сложен/слишком много шагов","tooComplicatedTooManySteps","thumb-down"],["Устарел","outOfDate","thumb-down"],["Проблема с переводом текста","translationIssue","thumb-down"],["Проблемы образцов/кода","samplesCodeIssue","thumb-down"],["Другое","otherDown","thumb-down"]],["Последнее обновление: 2025-07-29 UTC."],[],[],null,["# External time detection\n\nFrom Android 12, Android can optionally use an external\nsource of time to suggest Unix epoch times to the\n[`time_detector`](/docs/core/connect/time#time_detector) service. This isn't\nenabled by default in AOSP.\n\nThe *external* time origin allows device manufacturers to provide completely\ncustom time suggestions to Android. After\nreceiving suggestions from the external time origin, the `time_detector` service\ndetermines whether to update the system clock using the configured\n[prioritization rules](/docs/core/connect/time#automatic-time).\n\nImplementation\n--------------\n\nTo support external time detection, device manufacturers must implement a\ncomponent that submits external time suggestions to the `time_detector`\nservice through a system API call.\n\nTo configure the external origin, use the `core/res/res/values/config.xml`\nsystem server configuration file. Add the value `external` to\n`config_autoTimeSourcesPriority`.\n\nThe following example tells Android to give external time suggestions the\nhighest priority when setting the system clock. If there is no valid external\ntime suggestion available then the next origin, `gnss` in this case, is used. \n\n \u003cstring-array name=\"config_autoTimeSourcesPriority\"\u003e\n \u003citem\u003eexternal\u003c/item\u003e\n \u003citem\u003egnss\u003c/item\u003e\n \u003c/string-array\u003e\n\nTo provide the system with an external time suggestion, use the\n[`suggestExternalTime()`](https://cs.android.com/android/platform/superproject/+/android-latest-release:frameworks/base/core/java/android/app/time/TimeManager.java?q=%22void%20suggestExternalTime%22)\nmethod in `TimeManager`. If the external origin is configured using\n`config_autoTimeSourcesPriority` in the configuration file and no higher\npriority time suggestions are available, Android uses the\ntimestamp passed to this method to set the current Unix epoch time."]]