Скачет время на андроиде. Почему сбивается время на телефоне Android и что делать? Использование автосинхронизации времени и даты

Вспомнил, что вместе с коллегой по работе уже давно решил эту проблему на 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) с, тогда еще доступного, ресурса

Статья расскажет, как настраивать время на смартфонах и Айфонах.

Навигация

Многие пользователи, купившие мобильные устройства под управлением “IOS ” или «Android », иногда сталкиваются с проблемой, связанной со сбитыми датой и временем. Иногда часы сбиваются, если вынуть аккумулятор из телефона для замены симки и вставить обратно.

В данной статье мы поговорим о том, как правильно настраивать часы в гаджетах с операционными системами “IOS ” и «Android ».

Как настроить время в «Android»?

Настроить время в устройствах с ОС «Android » достаточно просто:

  • Зайдите в настройки гаджета, на вкладке «Система и устройство » нажмите на «Дополнительно ».

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

  • Далее зайдите в «Дата и время »

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

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

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

Настроить время в «Android » есть возможность иными способами, например, при помощи программы «Часы »:

  • Зайдите в программу «Часы »

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

  • Далее зайдите в параметры (три вертикальные точки)

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

  • Затем настраивайте время и дату согласно вашему часовому поясу

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

По какой причине сбивается время и дата в телефонах, планшетах под управлением «Android»?

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

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

Просто отключите эти параметры и включите их заново.

Как настроить время в «IOS»?

Теперь рассмотрим, как следует настраивать время в Айфонах под управлением «IOS »:

  • В настройках Айфона пройдите в пункт «Основные »

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

  • Затем пройдите в «Дата и время »

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

  • Вы увидите следующую картину

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

  • Здесь можно установить формат времени (механические часы, электронные часы). По умолчанию здесь настроены механические часы, то есть, когда на циферблате отображено двенадцать делений. Но не все любят такой вариант, многим удобнее пользоваться часами с отображением всех 24 часов в сутках. На скриншоте выше включён именно такой формат.
  • Отключите опцию «Автоматически ». Включать её нужно тогда, когда вы хотите настроить гаджет на автоматическое определение даты и времени по часовому поясу. Для этого необходим Интернет. Но мы ниже приведём ряд причин, по которым эту опцию стоит отключить.
  • Далее нужно будет установить часовой пояс, к которому относится ваше место проживания. Сначала нажмите на соответствующую опцию.

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

  • Затем вверху в строке поиска введите вашу страну, а далее город. На скриншоте ниже показан пример с установкой московского времени на гаджете.

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

  • Теперь можно настроить дату. Нажмите на пункт, указанный на скриншоте, и установите нужные значения. Здесь можно увидеть день недели, число и время.

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

Выше мы говорили, почему следует отключать опцию «Автоматически ». Это нужно сделать по следующим причинам:

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

По какой причине сбивается дата на Айфонах и гаджетах под управлением «IOS»?

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

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

Это происходит из-за того, что в настройках Айфона установлен совсем не тот календарь, которым пользуются в вашей стране. Стандартным календарём для большинства стран является Грегорианский . Но на вашем телефоне может быть установлен какой-нибудь арабский. Чтобы всё исправить зайдите в основные настройки и нажмите на «Язык и текст »:

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

По какой причине сбивается время и дата на телефонах, планшетах, Айфонах, «IOS», «Android»

Видео: Как настроить дату и время на смартфоне?

  • Tutorial

Предположим, вы уже давно используете Android, а потому может показаться, что он прекрасно справляется с задачами синхронизации времени – будильники срабатывают вовремя, каких-то явных отклонений времени не наблюдается и т. д. Однако уверены ли вы полностью в том, откуда Android на самом деле получает данные о точном времени и часовых поясах? Если у вас есть хоть какие-то сомнения о том, как это работает - добро пожаловать под кат.


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

Предыстория: Android является мобильной ОС, базирующейся на ядре Linux, он спокойно подключается к интернету и, конечно же, можно предположить, что синхронизация времени осуществляется с помощью NTP , однако, это не так. Исторически сложилось, что Android был предназначен для использования исключительно в мобильных телефонах (вспомните версию 1.6). При этом только к 3 мажорной версии он обзавёлся интерфейсом для планшетов и начали́сь другие подвижки к унификации интерфейса и начинки ОС. Однако даже версии 4.4 и Android L получают сигналы точного времени теми же методами, что их получала Nokia 3310 и другие, более ранние GSM/3GPP телефоны, т. е. от вышек сотовой связи при регистрации в сети (при подключении к вышке). При этом планшеты или другие устройства без модуля связи, в принципе не имеют возможности синхронизировать время автоматически.

К великому сожалению, чтобы научить Android синхронизировать время полностью автоматически с помощью NTP нам понадобиться root доступ ибо API для точной установки времени в Android ныне отсутствует.

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

Скриншот окна настроек «Настройки -> Дата и время» версии Android 4.x:

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

Скриншоты окна программы ClockSync до синхронизации (слева) и после (справа):

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

Убедившись, что всё работает, настроим автоматическую синхронизацию в программе ClockSync. Для повышения точности я рекомендую включить опции «Режим высокой точности» и «Только через WI-FI». Если с первой опцией всё понятно из описания в программе (см. скриншот ниже), то вторую опцию я рекомендую включить в первую очередь не из соображений экономии мобильного трафика, а из-за того, что мобильный интернет не способен гарантировать хоть сколько-нибудь стабильные задержки.

Немного подробнее о точности:

Всё ещё распространённый мобильный интернет 2-го (GPRS/EDGE) в принципе не в состоянии обеспечить стабильные задержки при передаче. Даже интернет 3-го (3G) и, в некоторой мере, 4-го (LTE/LTE-advanced) поколений при сильной загрузке сети или каналов связи между БС, что является типичной ситуацией для крупных населённых пунктов, не может гарантировать стабильные задержки. Поэтому даже с аппроксимацией конечная точность установки времени может быть хуже долей секунд и даже легко достигать нескольких секунд.

Скриншот настроек автоматической синхронизации в ClockSync:

В связи с масштабными изменениями часовых поясов в РФ осенью этого года необходимо уже сейчас задуматься об актуализации информации о них на всех устройствах и если с поддерживаемыми настольными ОС проблем не возникает, то в Android даже самая свежая версия ОС содержит устаревшие данные. Для того чтобы в этом убедиться устанавливаем TimeZone Fixer и наблюдаем неприглядную картину.

Скриншот программы TimeZone Fixer, запущенной на Android 4.4.4 (прошивка Cyanogenmod от 4 августа 2014), на котором хорошо видно, что данные в прошивке неактуальные:

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

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

Только поэтому я и внёс этот кусочек в статью, он хоть и не имеет непосредственного отношения к проблеме, но это действительно хороший пример заботы о пользователях. В то же время предупреждение насчёт версий 4.3+ вызвано лишь малым количеством отзывов о программе для устройств с новыми версиями ОС, поэтому, пожалуйста, после использования обязательно напишите о́тзыв об этом приложении.


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

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

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

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

На поздних версиях андроидах (4.1+) появилась функции автоматического определения даты и времени. Эту информацию предоставляет оператор вашей сотовой связи. К примеру, у меня и время и дата определена правильно.

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

Понравилась статья? Поделитесь с друзьями!