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

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

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

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

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

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

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

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

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

Рассмотрим, как это делается на примере приложения синхронизации времени ClockSync с NTP-сервером timeserver.ru


ClockSync с root-правами

Шаг 1

Шаг 1

Откройте Google Play на телефоне или планшете и скачайте приложение ClockSync.


Шаг 2

Шаг 2

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


Шаг 3

Шаг 3

Перейдите в раздел «Настройки NTP».


Шаг 4

Шаг 4

Впишите в поле «NTP сервер» адрес — timeserver.ru и нажмите «ОК».


Шаг 5

Шаг 5

Нажмите на телефоне кнопку возврата на предыдущую страницу и снова вызовите основное меню. Если на устройстве есть root-доступ, выберите пункт «Обновить» и разрешите root-доступ для приложения, если такое сообщение появится на экране.


Шаг 6

Шаг 6

В разделе «Смещение» будет показано смещение системного времени со временем на NTP-сервере.


Шаг 7

Шаг 7

Вновь вызовите меню, а затем выберите пункт «Синхронизировать».


Шаг 8

Шаг 8

При успешной синхронизации в нижней части экрана отобразится соответствующее сообщение.


Шаг 9

Шаг 9

Для включения функции автоматической установки точного времени вновь перейдите в «Настройки», а затем установите галочку напротив пункта «Включить автоматическую синхронизацию». В разделе «Интервал» можно задать частоту синхронизации.


ClockSync без root-прав

Шаг 1

Шаг 1

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


Шаг 2

Шаг 2

Сначала переключите ползунок «Использовать время в сети» в отключенное положение. Затем откройте раздел «Время».


Шаг 3

Шаг 3

Установите час (в данном случае — 16 часов). Затем переместите «минутную стрелку» в положение, которое указано в пункте «Время» (в данном случае — 40 минут).


Шаг 4

Шаг 4

Как только таймер достигнет «00», нажмите на кнопку «ОК». Текущее точное время будет сохранено на Android-устройстве.

Данную процедуру можно выполнять один раз в месяц или чаще. Погрешность при синхронизации в ручном режиме составляет 1 секунду.