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

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

Ручная настройка даты

Как поменять дату в Android в ручном режиме? Уверяем, что для этого вам не понадобятся права суперпользователя, загадочные команды и доступы в инженерное меню. Android является очень простой операционной системой, поэтому смена даты осуществляется здесь максимально просто – достаточно зайти в настройки. Ручная установка даты и времени нужна на устройствах, не подключенных к сети, так как иная синхронизация здесь попросту отсутствует .

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

  • Сдвигаем верхнюю шторку и нажимаем на символ шестеренки;
  • Заходим в главное меню, выбираем пункт «Настройки» (тоже в виде символа шестеренки).

В нижней части списка мы увидим пункт «Дата и время» — промахнуться мимо него вы просто не сможете.

Обратите внимание, что в некоторых Android-устройствах меню с настройками видоизменено и поделено на несколько вкладок – пункт установки даты и времени в таких устройствах находится во вкладке «Опции». В некоторых смартфонах ярлык настроек выведен прямо на рабочий стол.

Зайдя в этот пункт, мы увидим много всего интересного. Если в вашем смартфоне или планшете не установлена SIM-карта, автоматическая синхронизация будет невозможна. Для того чтобы установить правильное время и правильную дату, необходимо убрать галочку «Автоопределение времени» . После этого пункты ручной установки времени и текущей даты станут доступными. Далее жмем на пункт «Установить дату», выбираем текущее число, текущий месяц и текущий год, нажимаем кнопку ОК – теперь дата установлена правильно.

На следующем этапе устанавливаем время. Для этого необходимо тапнуть на пункт «Установить время» — устанавливаем часы и минуты, нажимаем на кнопку ОК. Далее необходимо снять галочку «Автоопределение часового пояса» и выбрать свой часовой пояс вручную. Если время при этом собьется, откорректируйте его.

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

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

Если не знаете, что выбрать, остановитесь на варианте «Местный», этот формат подразумевает отображение даты в следующей очередности – число, месяц, год (принятый в России формат).

Автоматическая настройка даты и времени

Как поменять дату в Android в автоматическом режиме? Эта операция подразумевает, что сведения о текущей дате будут забираться из мобильной сети – там постоянно вещаются правильное время и правильная дата. Автоматическая настройка сработает лишь в том случае, если в устройство будет установлена SIM-карта . Как только смартфон или планшет зарегистрируется в сотовой сети, из нее будут считаны необходимые данные.

Для включения автоматической настройки даты, необходимо установить галочку «Автоопределение времени» — при этом пункты «Установить дату» и «Установить время» станут недоступными. Если сеть неправильно задает часовой пояс (или ваше устройство не знает о проблемах с часовыми поясами и летним/зимним временем в нашей стране), уберите галочку «Автоопределение часового пояса» и выберите его самостоятельно.

Правильный часовой пояс для московского времени – часовой пояс Москва GMT +03:00. Выберите подходящее значение для своего региона в выпадающем списке.

Устанавливаем самое точное время и точную дату

Теперь вы знаете, как поменять дату в Android – для этого необходимо посетить настройки системы и воспользоваться пунктом «Дата и время». Установка данных осуществляется в Android в ручном или автоматическом режимах. Если хочется получить максимально точное время, следует выбрать автоматическое определение.

Но что делать, если точности мобильной сети недостаточно или ваше устройство не умеет связываться с мобильными сетями? Для того чтобы получить точнейшие данные о текущем времени и текущей дате, необходимо воспользоваться сторонними приложениями. Самым мощным приложением для автоматической синхронизации времени является ClockSync от разработчика Sergey Baranov . Несмотря на свои более чем скромные размеры, утилита обладает приличным функционалом.

Здесь мы найдем:

  • Автоматическую установку времени с root-правами;
  • Автоматическую установку времени без root-прав;
  • Режим высокой точности;
  • Выбор сервера для синхронизации времени;
  • Установку интервала запроса точно времени;
  • Режим экономии заряда батареи;
  • Детальную статистику;
  • Базу часовых поясов (будет полезна для старых смартфонов);
  • Автоматическое определение часового пояса;
  • Функцию обновления системных данных о часовых поясах.

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

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

Вспомнил, что вместе с коллегой по работе уже давно решил эту проблему на 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 следующей командой:
adb pull /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 поместили обратно в телефон:
adb push Settings.apk /system/app/

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

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

  • WP_0409WWE.db
  • WP_0419RUS.db
для английского и русского языков соответственно. Посмотрев на данные, мы обнаружили, что для нашего города, временная зона прописана как Asia/Almaty, пришлось поправить и этот момент, для этого в базах поменяли timezoneId на Asia/Novosibirsk (использовали Lita в качестве редактора SQLite database):
update locationlist set timezoneId = "Asia/Novosibirsk" where name = "Novosibirsk" -- (для WP_0409WWE.db) update locationlist set timezoneId = "Asia/Novosibirsk" where name = "Новосибирск" -- (для WP_0419RUS.db)
Кроме того, еще в одну базу добавили запись о нашем городе, а именно в /system/etc/timezones.db
Добавили запись, timezoneId: Asia/Novosibirsk, остальные поля Novosibirsk, ru – Новосибирск.

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

Итоги

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

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

Ввязавшись в войну со временем, мы решили идти до конца. А именно решить и проблему отмены перехода на зимнее/летнее время.
Скачали самую свежую tzdata (aka timeinfo.dat) с, тогда еще доступного, ресурса

Есть несколько причин появления этой “временной аномалии” в планшете. И поверьте, если время сбивается, так это вряд ли от того, что планшет разучился считать.


Список основных причин, почему так бывает, и способы решения

    1. Вы выключаете планшет на ночь, например, для экономии заряда. Очень распространенная причина, и единственный способ заставить время работать правильно — прекратить без весомой причины выключать планшет. Это ж не ноутбук, и не телевизор.
    2. Если у вас планшет оборудован 3G модулем, и в него вставлена сим-карта, вспомните, где вы покупали симку. Возможно, вы покупали карточку в другом регионе, где другой часовой пояс. И если у вас в настройках стоит галочка “Дата и время сети” , это означает, что на планшете выставляется время, заданное настройками оператора в том регионе, где покупалась SIM-карта. Решение — снять эту галочку, и выставить время вручную.

  1. “Плохая” прошивка. Если вы баловались с перепрошивкой планшета, вполне возможно, что установленная вами прошивка содержит какой-то баг. Решение — прошейтесь официальным программным обеспечением.
  2. Проблемой может быть и сам аппарат. Говорят, что у китайских планшетах завихрения со временем — довольно частое явление. В борьбе с этим недугом поможет приложение ClockSync (требует ROOT права для работы). Эта программа позволит настроить автоматическую синхронизацию времени через интернет, главное в настройках даты и времени снимите галочку с пункта “Часовой пояс сети”, и поставьте правильный часовой пояс, соответствующий вашему региону.

О том, что часы в мобильном отстают узнаешь, как правило, когда куда-то опоздал, примеру, на поезд. В XXI веке неприемлемо когда ваши часы спешат или отстают больше чем на минуту.

И если к наручным часам претензий нет, то смартфоны просто обязаны показывать точное время. Но как показывает практика — это не всегда так. Часы на телефонах такие же «брехучие» как и старые ходики у бабушки в деревне.

Чем определяется точность электронных часов

В первую очередь точностью настройки и стабильностью кварцевого генератора (резонатора). Точность и стабильность частоты последнего как правило составляет 10 -6 . В идеале при таком значении часы убегают чуть более 30 секунд в год.

На практике стабильность немного хуже, так как на частоту резонатора влияют параметры окружающей среды (температура, давление) и напряжение питания генератора. Так же в состав генератора входят и другие элементы, к примеру конденсаторы, параметры которых сильнее зависят от внешних воздействий. В результате часы могут убегать до 30 секунд в месяц.

Повышаем точность часов

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

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

В первом случае частота генератора часов подстраивается под частоту несущей передающей вышки GSM. Во втором случае базовая вышка GSM передает сигналы точного времени и операционная система подстраивает часы.

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

Серверы точного времени

Так как смартфон это компьютер с доступом в интернет, то проще всего синхронизировать часы с эталонными серверами точного времени. В стандартных прошивках этой возможности нет. Но проблема решается установкой допольнительного ПО. Программ таких несколько, и мне приглянулась одна — ClockSync от «отечественного производителя»:-).

ClockSync синхронизирует системное время Android устройства через Интернет по протоколу NTP с серверами точного времени. Программа полезна если оператор сотовой связи не поддерживает NITZ (автоматическую синхронизацию времени) или посылает неверные значения, а также в случае, если часы телефона сильно убегают вперед или отстают.

Работает на планшетах. Актуально если нужно точное время. Тем более на устройствах без GSM модуля.

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

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

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

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

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

Видео: настройка времени и даты

Если возникают проблемы

Случается, что при настройке даты и времени происходят ошибки: не применяются изменения, свежеустановленные время и дата сбрасываются, а то и вовсе из «Настроек» выкидывает с ошибкой. Причин может быть множество, но самые частые из них таковы:

  • у вас включена автосинхронизация времени, и поэтому попытки ручного изменения ни к чему не приводят. Чтобы отключить автосинхронизацию, нужно снять галочку с «Использовать дату и время сети» в настройках даты и времени;
  • проблема связана с единичным сбоем в работе системы и должна прекратиться после сброса настроек или перезагрузки;
  • брак в прошивке устройства - в таком случае, если вы не являетесь опытным пользователем, лучше всего будет обратиться к мастеру в сервисный центр, поскольку при попытке перепрошить устройство самостоятельно велик риск его повредить;
  • произошёл конфликт часовых поясов телефона и SIM-карты (чаще всего такое случается с оператором Tele2).

Чтобы исправить проблему с конфликтом часовых поясов и SIM-карты, проделайте следующие действия:

Автосинхронизация даты и времени

Если вы не хотите настраивать время и дату вручную, то можете воспользоваться встроенной в Android функцией автоматической синхронизации времени с сетью. Или, если же важна максимальная точность, - её улучшенной версией, для реализации которой потребуются root-права.

Обычная автосинхронизация

Чтобы синхронизировать дату и время с данными сети, нужно отметить галочкой всего один пункт, находящийся в меню настроек «Дата и время». Обычно он называется «Использовать дату и время сети», но возможны также варианты «Автоматические дата и время», «Синхронизировать с сетью» и другие подобные.

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

Когда отмечена галочка «Использовать дату и время сети», система сама сверяет дату и время с сетью

«Умная» синхронизация

Стандартная синхронизация не отличается точностью и работает с погрешностью в среднем 500 миллисекунд (это примерно половина секунды). Связано это с тем, что при её создании использовались старые и довольно медленные протоколы передачи данных. В результате информация об актуальном времени попросту не успевает прийти вовремя и слегка запаздывает. Это приводит к погрешности, которую исправляют многочисленные приложения для «продвинутой» синхронизации времени.

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

Алгоритм получения root-доступа уникален для каждой модели телефона, которых на данный момент сотни. Не существует общего способа, который позволял бы получить права суперпользователя на любом устройстве: даже самые популярные приложения для «взлома» root-прав действуют с ограниченным набором моделей, и подойдёт ли конкретное приложение вам - неизвестно. Для получения root-доступа на конкретном устройстве требуется ознакомиться с технической документацией по его рутированию на специализированном ресурсе.

Существует несколько приложений для смарт-синхронизации, и все они похожи друг на друга. Разберём работу с ними на примере приложения ClockSync.

ClockSync можно скачать с официальной страницы в Google Play. Однако это приложение - одно из самых ресурсоёмких и многофункциональных: например, в нём можно менять сервер, с которым сверяется время. Если вы не настолько продвинутый пользователь, то можете использовать какой-нибудь более простой аналог: например, Smart Time Sync.

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

Изменить часовой пояс, определённый на устройстве, можно в том же пункте настроек, «Дата и время». Строчка «Часовой пояс» позволяет изменить пояс, установленный по умолчанию.

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

Чтобы синхронизировать часовой пояс с сетью, нужно включить параметр «Использовать часовой пояс сети»

Какой именно часовой пояс используется в вашем регионе, можно узнать с помощью средств массовой информации по своему месту жительства, включая интернет. Московский пояс - GMT+3, в Санкт-Петербурге и средней полосе России также в основном используется он. В целом по России используются часовые пояса от +3 до +12.

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

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

Часовой пояс сбивается

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

Помимо этого, причиной сбоя может быть ошибка в базах данных. В таком случае поможет лишь одно из приложений для «умной» синхронизации, о которых уже было сказано; серверы, используемые ими, обычно определяют часовой пояс без ошибок. Однако для использования таких приложений требуется root-доступ. В настройках таких приложений существует пункт «Автосинхронизация», включение которого возможно только с «рутом». Если автоматическая синхронизация часовых поясов включена, пояс тоже будет определяться приложением автоматически - и делать это точнее, чем системное меню.

В главном меню настроек ClockSync и подобных приложений есть кнопка «Автосинхронизация часового пояса»

Видео: «починка» часового пояса через приложение

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