Телефон не перестраивается на домашнее время android. Настройка правильных времени и даты на Android

12 августа 2014 в 17:07

Проблемы времени и часовых поясов в 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 нужен дополнительный патчинг, пока вопрос находится на стадии исследования возможностей для создания юзер-френдли решения.

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

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

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

Теперь перейдём к ручной настройке параметров времени.

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

Возможные проблемы при настройке времени и их решения

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

  • настройки времени постоянно сбрасываются;
  • на экране устройства появилась запись «В приложении Настройки произошла ошибка».

Исправить эти недоразумения вам помогут следующие способы.

Перезагрузка

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

Автосинхронизация

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

Установка приложений 360root и ClockSync

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


Сброс настроек до заводских

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

Как выбрать, настроить или добавить новый часовой пояс

Чтобы узнать часовой пояс своего региона, зайдите на сайт http://www.gmt.su/city-time/country/Россия/ и найдите в списке ближайший к вам город. Справа страницы вы увидите данные о часовом поясе. Например, в Калининграде это GMT +02:00. Эту информацию вам и нужно будет выбрать в настройках своего телефона.

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

Изменение даты и времени на телефоне и планшете под Андроид – простейшие операции. Но только для тех, кто хорошо освоил устройство и знает его, как свои пять пальцев. Тема вызвала у вас улыбку? Полноте, сударь: все мы были новичками, и то, что кажется вам элементарным, когда-то казалось непонятным и сложным.

Эта статья для тех, кто только готовится стать «Гуру смартфонов» и «Богом ОС Андроид», точнее – для начинающих. Итак, читайте, как поменять дату в Android, а также настроить на нем время и часовой пояс.


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

Настройка времени и сегодняшнего числа средствами системы

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

Перейдем в раздел «Дата и время ». Опции, которые нас интересуют, находятся здесь. А именно:

  • Автонастройка времени и числа.
  • Автонастройка часового пояса.
  • Установка даты вручную.
  • Ручной выбор часового пояса.

Если хотите, чтобы телефон сам установил текущее время и число, коснитесь верхней кнопки, показанной на скриншоте выше. Выберите один из двух способов синхронизации – по сети или посредством GPS.

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

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

Или активируйте «Автоматическую синхронизацию часового пояса по сети », как показано на скриншоте ниже.

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

После этого зайдите в раздел «Установка даты »:

И отметьте в календаре сегодняшнее число. Или любое другое. Для сохранения нажмите «Установить ».

Если нужно, проделайте эту же операцию со временем.

Что делать, если число сбивается, а системные часы спешат или отстают

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

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

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

Для этого:

  • Запустите ClockSync и коснитесь кнопки меню (три точки в верхнем правом углу). Выберите «Настройки ».

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

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

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

Не секрет, что российские законодатели, особенно те, что сидят в нижней палате парламента, ребята очень активные и хоть зарплату им не плати, но дай понавыпускать различных нормативных актов. Так вот, летом 2014-го года парламентарии взяли и приняли очередной закон о замене часовых поясов на территории Российской Федерации. В каких-то регионах часовой пояс не поменялся, а в каких-то он сменился на новый. Но, многие производители электроники были не готовы к такому повороту, что осенью время вдруг взяло и поменялось.

Не готовы к подобному радикальному шагу были и в компании Samsung. Так как даже для своего флагмана S5 Samsung не позаботился о выпуске своевременного обновления к прошивке с поправленной часовой зоной. Например, в Москве, часовая зона с GMT+4 была переведена на GMT+3. Чем сей перевод чреват для пользователей? А тем, что сразу же нарушается стройный распланированный ход жизни владельца. Все напоминания, все встречи и даже записи в журнале звонков, в мгновение ока перемещаются в пространстве-времени и угадать, на какое нужно ставить время напоминание, что бы оно сработало именно тогда, когда нужно может не каждый обладатель красного диплома престижного вуза. А, что уж говорить о других?

И пока Samsung тормозит с выпуском обновления, попробуем самостоятельно разобраться, что нужно сделать с телефоном продать и купить Nokia или iPhone , что бы он нормально отображал время и с нужным часовым поясом.

Вариант 1. Автоматический.

Вариант 2. Прикинуться шлангом.

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

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

Поскольку для Москвы по-новому действует зона GMT+3, а по умолчанию в телефоне для Москвы жестко прошита зона GMT+4, то для того, что бы время вернулось в нормальное русло, придется выбрать, например Минск, у которого временная зона соответствует с нужными для Москвы значениями. Для других регионов действовать нужно аналогичным образом.

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

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

Вариант 3. Для джидаев.

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

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

Итак, рут-доступ в наличии и для того что бы заменить данные в базе данных с часовыми поясами на телефоне необходимо использовать бесплатную программу TimeZone Fixer . При запуске, программа определяет текущую версию установленной на телефоне базы данных и при необходимости производит обновление имеющихся в ней значений. После завершения работы, необходимо перезагрузить телефон. Конечно, изменить базу данных можно и при помощи других программ, доступных также с Google Play, равно, как и провести все манипуляции полностью самостоятельно используя лишь стандартный инструментарий.

После перезагрузки, в списке часовых зон наконец-то появляется искомая зона для Москвы GMT+3, и правильные зоны для других регионов. Выбираете нужный (свой) регион, предварительно не забыв отключить автоматическое обновление времени и часового пояса из сотовой сети. И вроде бы все должно исправиться и наладиться но, увы, Galaxy S5 работает на системе Android 4.4.x, а именно в семействе этих систем, ради красоты или каких-то других целей, временные зоны прописались еще в одном месте. Возможно, что аналогичное поведение будет сохранено и во всех последующих версиях Android.

Теперь, время и временная зона на телефоне отображаются верно, а вот события в Google Calendar, время звонков в журнале и SMS в папке с SMSками отображаются неверно. Используется старая часовая зона. Все дело в том, что необходимо поменять еще один файл, в котором по воле не совсем грамотных разработчиков системы, хранятся альтернативные значения для временных зон. Что бы исправить и это, необходимо сделать следующее:

А. Скопировать файл, расположенный по адресу /system/usr/icu/icu51dt.dat с телефона на компьютер или на SD карточку телефона. Сделать это можно, например, при помощи Root Explorer или аналогичной программы. Учтите, что файл достаточно объемный, порядка 18 мегабайт.

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

В. Скопировать скачанный обработанный файл с сайта обратно в /system/usr/icu/icu51dt.dat. Убедиться, что права доступа для всех групп установлены как минимум в режим чтения. Перезагрузить телефон.

Г. Наслаждаться правильной часовой зоной, отсутствием сдвига времени в календаре, звонках и SMS-ках.

Послесловие

Вообще, термин GMT (Greenwich Mean Time) несколько устарел. Дело в том, что время по Гринвичу уже давно никто не измеряет. Кончилось время Британской империи, кончился и GMT. Нынче мерилом начала отсчета принято использовать UTC. Хотя для бытового применения разница существует только в наименовании стандартов.

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

Похожие публикации