Синхронизация времени на 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
Откройте Google Play на телефоне или планшете и скачайте приложение ClockSync.

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

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

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

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

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

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

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

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

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

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

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

Шаг 4
Как только таймер достигнет «00», нажмите на кнопку «ОК». Текущее точное время будет сохранено на Android-устройстве.
Данную процедуру можно выполнять один раз в месяц или чаще. Погрешность при синхронизации в ручном режиме составляет 1 секунду.