Я не знал, но нашел вопрос интересным.Так что я копался в коде Android ... Спасибо open-source:)
Экран, который вы показываете, DateTimeSettings
.Флажок «Использовать сетевые значения» связан с общим предпочтением String KEY_AUTO_TIME = "auto_time";
, а также с Settings.System.AUTO_TIME
. Эти настройки наблюдаются наблюдаемым вызываемым mAutoTimeObserver
в сети 2 ServiceStateTracker
с:GsmServiceStateTracker
и CdmaServiceStateTracker
.
Обе реализации вызывают метод, называемый revertToNitz()
, когда настройки становятся истинными.Очевидно, NITZ является эквивалентом NTP в мире операторов.
Итог: вы можете установить время на значение, предоставленное оператором благодаря revertToNitz()
.К сожалению, я не нашел механизма для получения сетевого времени.Если вам действительно нужно это сделать, боюсь, вам придется скопировать эти реализации ServiceStateTracker
s, поймать намерение, поднятое фреймворком (я полагаю), и добавить метод получения к mSavedTime
.