Время по gps 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 и наблюдаем неприглядную картину.

Читайте также:  Андроид не распознает exfat

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

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

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

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

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

Источник

чудеса с временем GPS, вдруг кто поможет?

Имеет место достаточно древняя балалайка (в смысле «головное устройство») Incar AHR-2686. На Android 4.1. В принципе устраивает, но месяца полтора, как завёлся в ней глюк. Глюк известен и даже описан, например, тут: https://forum.gurtam.com/viewtopic.php?id=14366

суть дела — каждый 1024 недели (т.е. примерно раз в 20 лет) у GPS переполняется счетчик и жизнь начинается заново. Первый раз это было в 1999, второй раз в апреле 2019. производители об этом знают и лепят заплатки, чтобы «перескочивший» в счетчике GPS год интерпретировался правильно. Но вот в моей балалайке, видимо, заплатка налеплена кривовато (возможно и другие причины, конечно), и 17 августа сего года ей вдруг наступило 1 января 2000 года. ТАк с тех пор и живу.

Живу примерно так:

При включении дата может быть любой — может, правильной, может 2000-й год. Если балалайка зацепилась за Интернет, то дата станет правильная. Но как только балалайка зацепляется за спутники GPS (т.е. может выводить координату и навигировать) — так тут же ей наступает 2000-й год. И после этого способ оказаться в нормальном году — только один. А именно — зайти в настройки даты и времени, снять галочку «использовать время сети» и поставить ее обратно. Видимо, при этом происходит обращение к серверам NTP в интернетах (связи непосредственно с GSM-сетью у балайки нет. только через Wi-Fi роутер). Но если где-то по дороге прием GPS пропадет и возникнет снова — я снова в 2000-м году и чтобы вернуться в сегодняшний день снова надо лезать в настройки и снимать -ставить галочку.

Читайте также:  Android studio date input

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

Отсюда вопрос: можно ли придумать какие-то способы лечения?
Видимые варианты:
1. Найти какое-нибудь обновление и как-то поставить. Но система древняя, на Андроид 4.1 и есть сомнение. что обнволение есть.
2. Как-от отключить получение времени с GPS (не представляю как, но если можно куда-от залезть, я готов, только расскажите как). Координаты с GPS при этом, естественно, нужны.
3. Придумать какой-то скрипт, который будет периодически считывать текущее время и если видит заведомо кривой год, то корректировать его (сколько дней/недель прибавить-убавить я как-нибудь соображу. Был бы это нормальный Линукс — я бы примерно так и сделал. Но куда и как можно засунуть скрипт, читающий и корректирующий текущее время в этом андроиде — я совсем не представляю.
4. Может еще как-то?

выкинуть бабалайку в сборе и поменять на другую просьба пока не предлагать
если будете посылать на 4pda, то объясните в какой теме этой глобальной свалки можно написать вышеприведенный вопрос с надеждой, что его кто-то понимающий заметит?

Источник

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

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

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

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

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

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

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

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

Читайте также:  Nokia lumia 530 android прошивка

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

Источник

Время по gps android

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

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

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

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

  • обновление времени через 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 КБ )

Источник

Оцените статью