2012-05-11 3 views
2

Я пытаюсь синхронизировать работу между двумя планшетами ASUS с ОС Android.Синхронизация двух планшетов Android Android

настоящее время я использую этот алгоритм, чтобы сделать так:

Клиент таблетки посылает время это календарь, как так:

Calendar cal = Calendar.getInstance(); 
cal.getTime(); 
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss:SSSS"); 

connectionTablet.SendMessage(sdf.format(cal.getTime())); 

Таблетка сервер получает его:

Log.d("NETWORK", "msg"); 

msg - это cal.getTime, которое было отправлено с клиента, поэтому, когда я отлаживаю серверный планшет, я вижу в logcat время, когда это сообщение было получено и распечатано.

Обе таблетки используют автоматическую дату & время (используйте время, предоставленное сетью).

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

Пример:

Таблетка 1: 09: 34: 07,699 Таблетка 2: 09: 34: 07.699 (± 5 мс)

Так можно предположить, что это предположение справедливо для любой момент времени ?

Благодаря

ответ

3

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

+0

Вы можете предположить, что они останутся в синхронизации, учитывая определенный запас для [дрифта] (http://en.wikipedia.org/wiki/Clock_drift). – Grims

Смежные вопросы