Ваш смартфон показывает неправильное время? Как исправить это (Обновлено)
Статья от 09.04.2020: Многие из нас настолько привыкли узнавать время с помощью своего телефона, что когда однажды выясняется, что он показывает его неправильно, это становится серьезной проблемой. К счастью эту проблему совсем несложно исправить.
По умолчанию наши смартфоны автоматически определяют время с помощью соединения с оператором сотовой связи или через соединение с сетью через Wi-Fi соединения. Обычно это прекрасно работает, но иногда случаются сбои и телефон показывает время неправильно. Если такое произошло вы можете сделать следующее:
Установить время на смартфоне вручную
1. Откройте меню настроек на вашем телефоне.
2. Прокрутите вниз и выберите пункт «Система».
3. Нажмите на «Дата и время»
4. Выключите переключатель «Использовать время сети»
5. Нажмите «Время» и установите правильное время.
6. Нажмите ОК.
Исправить автоматическое определение времени на смартфоне
Установка времени вручную может быть не лучшим решением для многих людей, особенно тех, кто живет в странах, практикующих переход на летнее зимнее время. Им приходится менять время каждый раз, когда это происходит. Автоматическая установка времени намного удобнее и, зачастую, позволяет нам знать более точное время.
1. Откройте меню настроек на вашем телефоне.
2. Прокрутите вниз и выберите пункт «Система».
3. Нажмите на «Дата и время»
4. Выключите переключатель «Использовать время сети»
5. Нажмите на этот же переключатель еще раз, чтобы включить его
Логичного объяснения этому трюку нет, но он работает как работает выключение и включение устройства при различных неполадках с программным обеспечением.
Изменить часовой пояс на смартфоне
Иногда нам приходится уезжать из своей страны надолго и это также может вызвать проблемы с отображением времени на вашем телефоне. В этом случае вам просто нужно выбрать правильный часовой пояс на смартфоне.
1. Откройте меню настроек на вашем телефоне.
2. Прокрутите вниз и выберите пункт «Система».
3. Нажмите на «Дата и время»
4. Отключите переключатель «Использовать часовой пояс сети».
5. Нажмите на «Часовой пояс».
6. Нажмите На «Регион» и/или «Часовой пояс» в зависимости от того, какой из них вам нужно изменить.
Когда включен режим «Использовать часовой пояс сети», телефон должен самостоятельно переключаться на новые часовые пояса. Иногда это не работает и приходится устанавливать часовой пояс вручную.
Также, если вы не хотите устанавливать часовой пояс вручную, попробуйте отключить и снова включить этот переключатель, что позволит сбросить режим автоопределения.
Добавлено 29.07.2020:
Еще одним, как оказалось, неочевидным даже для достаточно опытных пользователей способом исправить неверно отображаемое на вашем Android устройстве время, является очистка данных приложения «Часы».
Сделать это можно перейдя в меню настроек системы -> «Приложения» -> «Показать все» -> «Часы» -> «Хранилище и кеш» -> «Очистить хранилище»
Источник
Проблемы времени и часовых поясов в Android и пути их решения
Предположим, вы уже давно используете Android, а потому может показаться, что он прекрасно справляется с задачами синхронизации времени – будильники срабатывают вовремя, каких-то явных отклонений времени не наблюдается и т. д. Однако уверены ли вы полностью в том, откуда Android на самом деле получает данные о точном времени и часовых поясах? Если у вас есть хоть какие-то сомнения о том, как это работает — добро пожаловать под кат.
В Android существует две проблемы со временем: это его непредсказуемая синхронизация и необходимость в актуализации данных о часовых поясах даже в самой свежей версии ОС.
Предыстория: Android является мобильной ОС, базирующейся на ядре Linux, он спокойно подключается к интернету и, конечно же, можно предположить, что синхронизация времени осуществляется с помощью NTP, однако, это не так. Исторически сложилось, что Android был предназначен для использования исключительно в мобильных телефонах (вспомните версию 1.6). При этом только к 3 мажорной версии он обзавёлся интерфейсом для планшетов и начали́сь другие подвижки к унификации интерфейса и начинки ОС. Однако даже версии 4.4 и Android L получают сигналы точного времени теми же методами, что их получала Nokia 3310 и другие, более ранние GSM/3GPP телефоны, т. е. от вышек сотовой связи при регистрации в сети (при подключении к вышке). При этом планшеты или другие устройства без модуля связи, в принципе не имеют возможности синхронизировать время автоматически.
К великому сожалению, чтобы научить Android синхронизировать время полностью автоматически с помощью NTP нам понадобиться root доступ ибо API для точной установки времени в Android ныне отсутствует.
Приступим. Первое, что необходимо сделать, это выключить синхронизацию времени с мобильной сетью. При этом установку часового пояса я рекомендую оставить в автоматическом режиме, а отключать её стоит, только если есть гарантия, что устройство будет работать в стационарном режиме.
Далее, необходимо установить приложение ClockSync, которое и будет выступать для нас альтернативой демону синхронизации времени с помощью NTP.
На скриншотах видно, что разница с точным временем оказалась достаточно маленькой, однако, бывают разные ситуации, у некоторых время на устройстве может даже плавать туда-сюда поскольку оператор не удосужился навести порядок у себя на БС.
Убедившись, что всё работает, настроим автоматическую синхронизацию в программе ClockSync. Для повышения точности я рекомендую включить опции «Режим высокой точности» и «Только через WI-FI». Если с первой опцией всё понятно из описания в программе (см. скриншот ниже), то вторую опцию я рекомендую включить в первую очередь не из соображений экономии мобильного трафика, а из-за того, что мобильный интернет не способен гарантировать хоть сколько-нибудь стабильные задержки.
Помимо этого я рекомендую включить опцию «При включении», чтобы лишний раз не выводить устройство из глубокого сна и тем самым сэкономить энергию.
В связи с масштабными изменениями часовых поясов в РФ осенью этого года необходимо уже сейчас задуматься об актуализации информации о них на всех устройствах и если с поддерживаемыми настольными ОС проблем не возникает, то в Android даже самая свежая версия ОС содержит устаревшие данные. Для того чтобы в этом убедиться устанавливаем TimeZone Fixer и наблюдаем неприглядную картину.
Автор программы TimeZone Fixer предупреждает нас, что обновление файлов данных о часовых поясах может полностью «сломать» устройство и даже даёт рекомендации о том как обезопасить себя от дополнительных проблем, хоть случаи проблем единичные и очень специфичные — это действительно хорошая забота о простых пользователях.
Только поэтому я и внёс этот кусочек в статью, он хоть и не имеет непосредственного отношения к проблеме, но это действительно хороший пример заботы о пользователях. В то же время предупреждение насчёт версий 4.3+ вызвано лишь малым количеством отзывов о программе для устройств с новыми версиями ОС, поэтому, пожалуйста, после использования обязательно напишите о́тзыв об этом приложении.
После обновления данных о часовых поясах программа предло́жит перезагрузится, однако, я рекомендую перезагрузить устройство самостоятельно через системное меню поскольку программа осуществляет перезагрузку фактически эквивалентную reset, что, пусть и с малой вероятностью, но может привести к проблемам и потери данных.
С удовольствием отвечу на любые вопросы или внесу дополнения, которые сообщество посчитает необходимыми, однако, хочется избежать перегруженности статьи дополнительной информацией, дабы придерживаться формата компактного руководства по решению конкретной проблемы.
UPD: Эта инструкция полностью решает проблему часовых поясов только для версий младше 4.4. С версии 4.4 нужен дополнительный патчинг, пока вопрос находится на стадии исследования возможностей для создания юзер-френдли решения.
Источник
Устранение проблем с автоматической синхронизацией времени в 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 и виджет погоды — добавляем свой город слегка пересекающуюся с данной.
Источник