Avtoprokat-rzn.ru

Автопрокат Эволюшн
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Точная синхронизация времени андроид

ClockSync

ClockSync для AndroidСинхронизация времени телефона, программа для АндроидClockSync

ClockSync. Ручная или автоматическая синхронизация системного времени устройства через 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).
  • Установка часового пояса через ручную настройку смещения в часах.

Скачать программу для синхронизации времени телефона — ClockSync на Андроид вы можете по ссылке ниже.

Разработчик: Sergey Baranov
Платформа: Android 1.5 и выше
Язык интерфейса: Русский (RUS).
Root: Нужен для автоматической синхронизации времени
Состояние: Free

ClockSync

ClockSync для AndroidСинхронизация времени телефона, программа для АндроидClockSync

ClockSync. Ручная или автоматическая синхронизация системного времени устройства через 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).
  • Установка часового пояса через ручную настройку смещения в часах.

Скачать программу для синхронизации времени телефона — ClockSync на Андроид вы можете по ссылке ниже.

Разработчик: Sergey Baranov
Платформа: Android 1.5 и выше
Язык интерфейса: Русский (RUS).
Root: Нужен для автоматической синхронизации времени
Состояние: Free

Точная синхронизация времени андроид

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

Протокол NTP используемый для синхронизации времени работает через UDP соединение, порт 123. Ваш маршрутизатор, локальный или корпоративный файрвол, прокси сервер, либо Интернет провайдер (включая сотового оператора) может блокировать доступ к публичным NTP серверам. При блокированном доступе к NTP ClockSync не сможет получить точное время. Для решения проблемы вы можете попробовать WiFi соединение вместо 3G/LTE, или наоборот. Обратитесь к системному администратору, в техподдержку провайдера или сотового оператора чтобы узнать почему доступ к NTP заблокирован и что с этим можно сделать.

В планах развития ClockSync есть новые функции, которые позволят синхронизировать время при заблокированном доступе к NTP. К ним относится синхронизация через GPS и получение времени из HTTP заголовков публичных серверов (точность будет меньше чем у NTP, но это лучше чем полное отсутствие синхронизации).

Операционная система Android запрещает сторонним приложениям менять системное время, это ограничение безопасности. Чтобы его обойти, необходимо получить права root. Начиная с версии 1.1.2 вы можете использовать режим Без root для ручной синхронизации. Подробнее про root.

Этот режим делает программу ClockSync полезной даже если на вашем устройстве нет root. Когда он включен, ClockSync покажет уведомление при разнице системных часов и точных часов выше заданного порогового значения (по умолчанию 60 секунд). Нажмите на уведомление чтобы запустить режим помощи в установке времени. Этот же процесс можно запустить нажатием на системном времени или через меню Синхронизировать. Программа откроет системный диалог Дата и Время и покажет подсказку, когда и какое время выставить. Вам необходимо вручную выставить нужное время следуя подсказке на экране, как только время установлено с максимально возможной точностью, режим помощи отключится и вы вернетесь в приложение ClockSync. Режим помощи можно прервать нажав на уведомление.

В худшем случае точность будет в районе 30 секунд (если ваше устройство не сбрасывает секунды). Почему не 60 секунд? ClockSync автоматически учитывает разницу между текущим значением секунд системного времени и точного времени. Если эта разница больше 30 секунд, то будет предложено установить на 1 минуту больше, если разница меньше минус 30 секунд — на минуту меньше.

Некоторые устройства (в основном Samsung и HTC) сбрасывают секунды при ручной установке времени. Начиная с версии 1.1.5 в ClockSync появилась специальная опция: «Обнуление секунд». Если она включена, подсказка в ручном режиме попросит вас установить время на одну минуту вперед текущего точного времени и будет показывать обратный отсчет до момента, когда наступит следующая минута по точному времени. Таким образом, при нажатии кнопки Установить в этот момент, вы получите точное время на устройстве (точность зависит только от скорости вашей реакции). Для дополнительной помощи в этой задаче ClockSync начнет проигрывать сигнал точного времени за 5 секунд до наступления следующей минуты. Сигнал представляет из себя 5 коротких гудков и 1 длинный. Вам нужно установить время после 5-го короткого гудка, в самом начале 6-го (длинного) гудка, обозначающего начало новой минуты.

Читайте так же:
Регулировка клапанов вайпер спорт

Для максимальной пользы от программы в режиме без root должна быть включена автоматическая синхронизация (которая работает как автоматическая проверка времени) и опция «Показывать уведомление».

Изначально ClockSync использует системный вызов System.setCurrentTimeMillis() для установки времени. Чтобы он работал, с помощью root изменяются права устройства /dev/alarm. Этот метод возвращает false в случае ошибки. Обычно это происходит если время изменить не удалось (например, из-за защиты KNOX/SELinux на устройствах Samsung и в свежих версиях Android). В таком случае ClockSync использует альтернативный метод установки времени через команду date. Существует очень маленький процент устройств, где setCurrentTimeMillis возвращает ошибку, но при этом время на самом деле выставляется корректно. Все бы было хорошо, но на некоторых устройствах вызов команды date приводит к установке неправильного времени (различие в параметрах, нестандартная версия утилиты date).

Из-за наложения этих двух ошибок ClockSync собьет время и предложит обратиться к разработчику. Включите эту опцию если такое происходит на вашем устройстве. В этом случае ClockSync будет игнорировать результат вызова setCurrentTimeMillis и не будет использовать команду date для установки времени. К сожалению, это не поможет если date является единственным способом установки времени на вашем устройстве, но при вызове из ClockSync приводит к неправильной установке времени. Свяжитесь со мной если эта проблема затрагивает ваше устройство, попробуем разобраться.

Если у вас отключена опция автоматической синхронизации при загрузке, ClockSync не будет ничего делать и моментально завершится. Система освободит память автоматически, как только в этом возникнет необходимость, вам не нужно об этом волноваться. До версии 1.1.3 при загрузке устанавливались таймеры для автоматической синхронизации с нужным интервалом, но в новых версиях таймеры выставляются по событию наличия сетевого подключения и удаляются при отключении сети, это позволяет максимально экономить батарею, т.к. при отсутствии Интернета ClockSync даже не будет запускаться. Начиная с версии 1.1.6 при загрузке также устанавливается таймер для перевода на зимнее/летнее время, но только если включена «Автономная база» и это актуально для выбранного часового пояса. Для России это больше не актуально, поэтому такой таймер не ставится.

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

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

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

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

Читайте так же:
Как отрегулировать фары дальнего света на сонате

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

Да, есть возможность использовать GPS для получения времени, но это непрактично по нескольким причинам. Самая главная причина в том, что Android не поддерживает функцию PPS (pulse-per-second), которая необходима для точной синхронизации с устройством GPS. Без этой функции максимальная точность синхронизации будет около 300мс, вместо 1-10мс при использовании NTP. Другая причина в том, что GPS требует долгого старта, открытого неба, сильно расходует батарею. Это делает автоматическую синхронизацию с GPS не очень полезной для большинства пользователей, т.к. в ваших квартирах и офисах, где вы находитесь большинство времени, скорее всего нет видимости спутников. Я планирую добавить синхронизацию с GPS в одном из будущих обновлений ClockSync для случаев, когда вы находитесь в роуминге или в районе без Интернета. В настоящий момент есть несколько известных проблем с GPS на платформе Android, которые делают невозможным получение времени с GPS устройства на многих Android устройствах. До тех пор, пока эти проблемы не будут исправлены, эта возможность будет работать не на всех устройствах. Если вам нужна синхронизация с GPS, воспользуйтесь другой программой из Маркета: GPS Time.

Чтобы иметь возможность устанавливать время, ClockSync изменяет права устройства /dev/alarm , делая его доступным на запись для всех пользователей. Если вы включите эту опцию, то каждая синхронизация времени будет вызывать приложение su (Superuser) 3 раза: для проверки наличия root, для установки прав на запись, и для восстановления старых прав. Если вы боитесь что какое-то другое приложение сможет использовать права на запись к этому устройству в каких-то нехороших целях, включите эту опцию. Имейте в виду, что каждый вызов su относительно дорогая операция в плане ресурсов процессора, памяти и батареи. При отключенной опции ClockSync выставляет права только один раз, все последующие разы, если права на запись есть, su вообще не вызывается, что экономит ресурсы устройства и делает процесс синхронизации времени мгновенным.

Прежде всего убедитесь что у вас включена опция «Фоновой режим» в настройках аккаунтов и синхронизации, иначе сервис ClockSync не будет использовать сеть в фоне. Если вы включили опцию «Только через WiFi», имейте в виду, что у вас может быть включен Спящий режим в дополнительных настройках WiFi, при котором WiFi будет отключаться, когда экран устройства выключен, и ClockSync не будет синхронизироваться в это время. Опция «При включении» может работать некорректно на некоторых устройствах, отключите ее если синхронизация не происходит. Для диагностики проблем синхронизации используйте функцию «История и Статистика».

Интервалы, отмеченные звездочкой (15/30 минут, 1/12 часов, 1 день), могут срабатывать не обязательно точно для экономии батарейки. Система Android делает так, что несколько неточных таймеров от разных приложений срабатывали одновременно, чтобы лишний раз не будить устройство. Первое срабатывание таймера будет не раньше чем заданный интервал, но может пройти еще практически столько же времени до того как таймер сработает. Другими словами, время между срабатываниями таймера будет различаться.

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

Читайте так же:
Субару аутбек 2006 как отрегулировать

Более высокая точность синхронизации достигается двумя техниками. Первая заключается в опросе NTP сервера 5 раз подряд с задержкой в одну секунду между запросами, после чего берется среднее значение 5 смещений. Несмотря на то что протокол NTP учитывает задержки передачи пакетов, постоянно меняющаяся сетевая среда все равно немного сказывается на точности. Использование среднего значения позволяет увеличить точность. Вторая хитрость — полностью разбудить устройство. В обычном режиме ClockSync будит устройство не полностью и не дает ему заснуть, пока не закончится синхронизация. Из-за экономичного режима работы при неполном пробуждении задержки передачи пакетов возрастают в несколько раз, что сказывается на точности.

Синхронизировать Android устройств через GPS времени?

Проблема: мне нужно несколько устройств Android, чтобы сделать что-то в одно и то же время (в течение примерно 100 миллисекунд). Например, я хочу, чтобы все устройства воспроизводили определенный звук в заранее определенный момент времени.

Вопрос: Могу ли я использовать время GPS, чтобы убедиться, что часы устройств синхронизированы?

Более длинная версия:

Несколько человек, имеющих устройства Android, находятся в одном и том же открытом месте (для какого-то конкретного спортивного события). Все устройства должны сигнализировать определенные события в одно и то же время. (Какое время будет определено заранее, и не важно, что они делают это именно в это время, главное, чтобы они делали это одновременно). FWIW: эти события помогут людям начать свою спортивную деятельность одновременно.

Вот предположения, которые я могу сделать:

  • Там может быть или не быть покрытие сотовой связи. (Он находится на открытом воздухе и может находиться далеко от городских районов)
  • Устройства могут быть подключены или не подключены к интернету. (У некоторых людей может не быть плана передачи данных)
  • Устройства могут разговаривать друг с другом. Если устройства не подключены к интернету, они будут подключены через wifi (хотя wifi может не иметь интернет-шлюза).
  • Устройства находятся снаружи (а не внутри зданий). (Это хорошо, это означает, что все устройства могут получить исправление GPS)
  • Устройства находятся физически близко друг к другу (то есть в пределах 300 м2). (Не уверен, что это важно)

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

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

Будет ли это достаточно точно и надежно?

Заранее большое спасибо, Андреас Лейтнер

3 ответа

  • GPS функциональность связи устройств с сервером

Привет, я хочу реализовать функцию связи gps устройств в android устройстве, но я не знаю, как эти устройства взаимодействуют с сервером, который использует данные этих устройств и сохраняет эти данные на сервере. Я должен спросить об этих устройствах 1-Может ли сервер подключать эти устройства.

Я ищу библиотеку Java, которая обрабатывает преобразование в/из времени GPS . GPS время имеет эпоху 6 января 1980 года и не имеет високосных секунд, поэтому оно отличается от более стандартных представлений времени. Вот соответствующее описание из Википедии: В то время как большинство часов.

Читайте так же:
Регулировка насос форсунок своими руками

Вы можете получить разницу во времени в миллисекундах от currentTimeMillis() и Location.getTime() в обратном вызове onLocationChanged() . Использовать requestSingleUpdate()

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

EDIT: Я хочу отредактировать этот ответ. После работы в качестве разработчика GNSS в ОС Android я понял, что многие ‘major’ Android OEMs все испортили. Обычно NMEA предложений генерируются на чипсете или GNSS стеке. Иногда время подходит, все зависит от реализации.

Также существует проблема високосной секунды. GPS время-это не UTC время. И на момент написания этой статьи он опережает нас на 18 секунд .

Кроме того, GPS времени из Location объектов теперь являются системным временем в соответствии с документацией

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

UTC не является производным от GPS, APK переопределяет GPS. Android установлен для игнорирования GPS часов. Вы getTime()-это NIST, а не GPS

Похожие вопросы:

Я столкнулся с проблемой, и мне нужна помощь, чтобы понять, что происходит. Идея состоит в том, чтобы синхронизировать 2 или более устройств android относительно местоположения GPS timestamp. Я.

Есть ли способ синхронизировать временные метки в значениях, измеряемых датчиками (например, ускорение) ( SensorEvent.timestamp ) и GPS ( Location.getTime() ). SensorEvent.timestamp-это наносекунды.

Можно осуществить поиск устройств с поддержкой GPS вокруг моего устройства GPS помощью PhoneGap, как функциональные возможности сканирования устройства bluetooth по. Если это возможно, как я могу.

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

Я ищу библиотеку Java, которая обрабатывает преобразование в/из времени GPS . GPS время имеет эпоху 6 января 1980 года и не имеет високосных секунд, поэтому оно отличается от более стандартных.

Используют ли устройства Android протокол сетевого времени (NTP) для синхронизации времени? В настройках моего устройства я вижу checkbox со следующим текстом синхронизировать с сетью, но я не знаю.

Я создаю приложение android, в которое будет встроена карта Google. Это приложение должно отображать на карте количество автобусов в том или ином районе. Я понимаю, что мне нужно установить GPS.

Кто-нибудь знает, можно ли скачать альманах GPS на телефон android? Не через GPS sat, а через wifi/3g. и с помощью упомянутого альманаха затем скормите его GPS битам на моем телефоне. Все в коде.

Я думал об использовании нескольких устройств Android (например, планшетов Nexus 7) для создания фото / видеостены, и мне интересно: а) возможно ли это и Б) как синхронизировать отображение всех.

Я работаю над gps приложениями для отслеживания в android. Вот моя архитектура кода: BackgroundSyncService : класс обслуживания, используемый для получения обновления местоположения. Здесь.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector