Не синхронизируется время андроид

Синхронизация времени на Android через TimeServer

Знание точного времени очень важно в современном мире, в котором все может поменяться буквально за считанные минуты. А для решения некоторых задач могут отводиться и вовсе несколько секунд. К счастью, определение точного времени в любой точке земного шара — несложная задача. Достаточно лишь иметь под рукой любое устройство с выходом в интернет. Рассмотрим, как определить точное время на смартфонах и планшетах, работающих под управлением операционной системы Android.

О синхронизации времени

Существуют различные способы определения точного времени. Для обычных людей наиболее удобным и простым способом является использование серверов синхронизации времени (NTP-сервер). Большинство операционных систем, устанавливающихся на компьютеры и мобильные устройства, имеют встроенную функцию для работы с такими NTP-серверами. Алгоритм синхронизации внутренних часов устройства со временем на удаленном сервере достаточно прост:

  • Пользовательское устройство посылает запрос на сервер синхронизации запрос, для чего используется специальный сетевой протокол — NTP (Network Time Protocol).
  • В ответ на запрос сервер формирует NTP-пакет с нужными данными и отправляет его обратно на пользовательское устройство.
  • Встроенная функция синхронизации обрабатывает пакет и настраивает внутренние часы устройства, используя данные из NTP-пакета.
  • Высокая точность синхронизации (вплоть до одной сотой секунды, т.е. 10 миллисекунд) достигается благодаря тому, что функция установки времени учитывает задержку между и отправкой запроса и получение от сервера NTP-пакета.

Сам же NTP-сервер определяет точное время по реально (физически) существующему эталону времени. Это целый комплекс оборудования, в задачу которого входит отчет времени. В мире существует несколько эталонов времени, расположенных в технологически развитых странах, включая Россию. Атомные часы имеются в распоряжении «Всероссийского научно-исследовательского института физико-технических и радиотехнических измерений» (ВНИИФТРИ).

Синхронизация времени с TimeServer на Android

В операционных системах Android также имеется встроенная функция синхронизация времени по сети. Однако пользователи не могут ее настраивать. Т.е. система сверяет время с NTP-сервером, который, по сути, неизвестен владельцу Андроид-устройства. Также остается секретом и то, насколько точно работает базовая функция синхронизации часов в Android.

Для возможности синхронизации времени на смартфонах и планшетах под управлением Андроид существует только один выход — использование специальных приложений. Но и здесь есть свои нюансы. ОС Android запрещает сторонним приложениям изменять настройки даты и времени, что сделано в целях безопасности. Для полноценной работы приложений синхронизации времени требуется root-права. Без root-прав такие программы не могут изменять системные настройки в автоматическом режиме, однако определять точное время они все же в состоянии. В этом случае пользователю придется время от времени устанавливать время на своем Android-устройстве вручную.

Источник

Не синхронизируется время андроид

Для автоматической синхронизации времени необходимы права root пользователя.

Краткое описание:
Синхронизация времени телефона с атомными часами через NTP

Описание:
Ручная или автоматическая синхронизация системного времени устройства через NTP. Акутально для практически всех наших операторов, так как они не поддерживают протокол автоматической синхронизации времени через базовые станции оператора (NITZ). Из-за этого время на вашем устройстве может постоянно отставать или убегать вперед.

Читайте также:  Как увеличить озу android

Основные возможности:

  • обновление времени через NTP по тапу на времени или смещении, синхронизация по тапу на системном времени а так же через меню приложения
  • отображение даты или времени прошедшего с последнего момента синхронизации (меняется по тапу)
  • вибро отзыв при нажатиях на активные элементы экрана
  • автоматическая синхронизация времени с заданным интервалом и при загрузке
  • возможность синхронизировать только через Wi-Fi (если у вас Wi-Fi отключается при засыпании, не будет синхронизироваться)
  • энергоэффективные режимы синхронизации (15/30/60 минут и 1/12/14 часов) и синхронизация только при включении устройства
  • русский/английский интерфейсы (время с последней синхронизации немного криво показывает множественные формы минут/часов + дата будет всегда на английском)
  • не лезет в интернет если выключена системная опция Background Data (автоматическая синхронизация не будет работать)
  • совместимость с Android 1.5 и более поздними версиями системы

Ручной режим для телефонов без root:

  • автоматическое получение точного времени с заданным интервалом
  • если разница с точным временем превышает заданное значение, показывается уведомление
  • помощник для ручной синхронизации с подсказками какие значения даты/времени установить
  • точность в интервале между 1 и 30 секундами (т.к. Android не позволяет устанавливать секунды)
  • точность

    1 секунда если ваше устройство обнуляет секунды при ручной установке времени (большинство устройств Samsung)

  • сигнал точного времени для помощи при ручной установке если устройство обнуляет секунды

Управление часовым поясом (root не нужен!):

  • установка часового пояса через географические координаты
  • установка часового пояса согласно последней версии базы Olson (2012g) (tzdata, zoneinfo, tz database)
  • установка часового пояса через ручную настройку смещения в часах

Если у вас проблема с часовым поясом в России, читайте обращение разработчика.

Версия: 1.3.1 ® ClockSync (Пост Aleksey_52 #65356255)
База, Версия 1.2.7 (2016c): Play Store / TimeZoneService.apk
Версия: 1.2.5: ClockSync_1.2.5
Версия: 1.2.4.1: ClockSync_1.2.4.1
Версия: 1.2.3: ClockSync_1.2.3
Версия 1.2.2: //4pda.to/forum/dl/post/1459537/ClockSync_1.2.2.apk
Версия 1.2.0: //4pda.to/forum/dl/post/1341385/ClockSync.apk
ClockSync.apk ( 207.95 КБ )

ClockSync.apk ( 208.05 КБ )

ClockSync.apk ( 195.51 КБ )

ClockSync.apk ( 248.21 КБ )

Источник

Как настроить дату и время на Android

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

Устанавливаем параметры времени

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

Шаг 1. Запустите Настройки, пройдите в категорию «Система и устройство» и выберите раздел «Дополнительно».

Шаг 2. Нажмите кнопку «Дата и время».

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

Обратите внимание: параметры даты и времени могут быть скрыты в других подразделах, например, в расширенных настройках. Это зависит от версии Android.

Перейти к параметрам даты и времени можно и другим путем – через приложение Часы:

Шаг 1. Запустите приложение Часы.

Шаг 2. Нажмите кнопку параметров.

Шаг 3. Нажмите на кнопку «Настройки даты и времени».

Почему сбивается время на Андроид

Синхронизация даты и времени на смартфонах Android иногда может работать некорректно, из-за чего происходит сбой настроек. Чтобы исправить эту проблему, необходимо отключить параметры «Дата и время сети» и «Часовой пояс сети», после чего задать настройки вручную.

Если вопрос не решится, стоит выполнить сброс Android до заводских настроек и заново установить все параметры.

Заключение

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

Источник

Устранение проблем с автоматической синхронизацией времени в Android

Прочитав статью «Переезд временной зоны MSD в MSK — новый Y2K локального масштаба» — вспомнил, что вместе с коллегой по работе уже давно решил эту проблему на Android (HTC Hero) и хотел написать в песочницу, но все откладывал на потом. А сегодня появилась очередная статья «Обновление временных зон на Android» практически похоронившая идею написания и, подтвердившая идею, что не надо откладывать важные вещи на потом. Но… немного повспоминав, я всё-таки решился, потому что в данных статьях рассматривалась проблемы связанные с переходом на зимнее/летнее время и совсем не затрагивался момент касающийся работы виджета часов с погодой и автоматического определения времени через оператора сотовой связи.

Все началось с того, что был приобретен новый телефон HTC Desire S.

В процессе настройки выяснилось, что в настройках даты и времени нет возможности выбрать мой город — Новосибирск и приходиться выбирать альтернативный город с подходящим часовым поясом.
Так же выяснилось, что синхронизация времени от оператора работает как-то загадочно и виджет HTC Clock в режиме отображения погоды и включенной автоматической синхронизацией отображает некорректное время.

На картинке может показаться, что всё в порядке, однако время на самом деле на телефоне убежало на час назад. Можно отключить автоматическое определение и выставит зону руками, но тогда получим следующее:

Как видно, Новосибирск в списке отсутствует. Нам пришлось выбрать Bangkok, при этом системное время в телефоне стало правильным, но виджет отображает по-прежнему со смещением на час назад.

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

Можно было на все это забить, отключить, выставлять руками и не обращать внимания на виджет, но… это же Android — а это значит, что мы можем и должны его победить!

И так, мы начинаем

Новый телефон был на тот момент не рутованый и сделать его таковым не представлялось возможным. Поэтому для экспериментов был взят HTC Hero с оригинальной прошивкой + root/busybox/apps2sd, на котором были точно такие же проблемы.

Нашли через osmonitor приложение, в котором выбирается часовой пояс — (com.android.settings). Посмотрели исходники пакета com.android.settings и выяснили, что ресурсы загружаются из XML файла timezones.xml.

Достали apk этого приложения /system/app/Settings.apk следующей командой:

Не стану описывать все подробности работы APK manager и Android SDK tools, думаю, заинтересованные люди легко разберутся. Остановлюсь только на ключевых моментах.

С помощью APK manager произвели следующие действия

  • decompile
  • ручками в другом окне отредактировали файлы
  • compile. При компиляции APK manager задает вопросы:
    «Is this a system apk (y/n)» – отвечаем yes
    «Aside from the signatures, would you like to copy over any additional files that you didn’t modify from the original apk in order to ensure least # of errors (y/n)» -тоже отвечаем yes.
    Далее действуем по предложенной APK manager-ом инструкции, в другом окне удаляем из директории keep файлы, которые мы изменили + resources.arsc.
  • Завершаем сборку.

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

Получившийся apk поместили обратно в телефон:

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

Наш город появился в списке, но определение временной зоны в автоматическом режиме по-прежнему работало неверно. Для этого мы пошли дальше и выяснили что, настройки временных зон для городов хранятся в базе данных, а именно в файле /system/etc/WPDB.zip.
Достав его из телефона с помощью всё того же adb, мы извлекли из него две базы

  • WP_0409WWE.db
  • WP_0419RUS.db

для английского и русского языков соответственно. Посмотрев на данные, мы обнаружили, что для нашего города, временная зона прописана как Asia/Almaty, пришлось поправить и этот момент, для этого в базах поменяли timezoneId на Asia/Novosibirsk (использовали Lita в качестве редактора SQLite database):

Кроме того, еще в одну базу добавили запись о нашем городе, а именно в /system/etc/timezones.db
Добавили запись, timezoneId: Asia/Novosibirsk, остальные поля Novosibirsk, ru – Новосибирск.

Для того чтобы все сделанные изменения вступили в силу, сбросили кэш для приложений
Clock, Settings и Weather Provider. Ну и для полной уверенности перезапустили телефон.

Итоги

В результате получили вот такие пироги:

Как мы видим, в автоматическом режиме зона определяется корректно, системное время и время на виджете одинаковое, ну и в ручном режиме все в порядке.

Ввязавшись в войну со временем, мы решили идти до конца. А именно решить и проблему отмены перехода на зимнее/летнее время.
Скачали самую свежую tzdata (aka timeinfo.dat) с, тогда еще доступного, ресурса elsie.nci.nih.gov/pub
Обнаружили, что в ней про нас еще не подумали, поправили, подготовили и залили в телефон. На момент написания статьи, данная база уже содержит правильные настройки для нашей необъятной страны, а как решать эту проблему, замечательно описано в статье «Обновление временных зон на Android»

В заключение, привожу список средств, которые мы использовали:

  • APK Manager
  • Lita
  • Android SDK

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

П.С. уже после публикации случайно обнаружил статью описывающую добавление нового города HTC Sense и виджет погоды — добавляем свой город слегка пересекающуюся с данной.

Источник

Читайте также:  Jedi academy kotf android
Оцените статью