2012-05-11 23 views
2

Android OS搭載の2つのASUSタブレットの間で操作を同期しようとしています。2つのアンドロイドタブレットの同期

私は現在、これを行うには、このアルゴリズムを使用しています:

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

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

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

サーバーのタブレットは、それを受け取る:

クライアントタブレットは、それの時間はそうのようなカレンダーの送信します

msgはクライアントから送信されたcal.getTimeです。したがって、私はサーバタブレットをデバッグしているときに、このメッセージが受信されて印刷された時刻をlogcatで確認できます。

どちらのタブレットも自動日付&時間(ネットワーク提供時間を使用)を使用します。

私の質問は、タブレットが同じ場所から時間情報を取得しているからです。分単位で同じ時間があることは分かっていますが、時間も同期していると考えることができますミリ秒ですか?

例:

タブレット1:09:34:07.699 タブレット2:09:34:07.699(±5秒)が

私はこの仮定は、任意の時点に有効であると仮定することができます?

おかげ

答えて

3

いいえ、各デバイスは、それはデバイスがネットワーク上のタイムソースと時々自分自身を同期する理由がある、これらは正確に同じ速度で実行されない場合があります自身の内部クロックだと持っているとしてではなく「間」の時間は、ある時点でオフになっている可能性のある内部クロックから発生します。 これは、ネットワークの同期が完璧であると仮定しています。

+0

[drift](http://en.wikipedia.org/wiki/Clock_drift)に一定のマージンを与えても同期がとれていると仮定できます。 – Grims

関連する問題