2

Android OSを搭載した2台のASUSタブレット間で操作を同期しようとしています。

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

クライアント タブレットは、次のようにカレンダーの時刻を送信します。

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 ミリ秒)

では、この仮定がどの時点でも有効であると仮定できますか?

ありがとう

4

1 に答える 1

3

いいえ、各デバイスには独自の内部クロックがあり、これらはまったく同じ速度で実行されない可能性があるため、デバイスはネットワークタイムソースと時々同期しますが、「中間」時間は内部から発生しますある時点でオフになっている可能性のあるクロック。そして、それはネットワーク同期が完璧であることを前提としています

于 2012-05-11T14:13:00.627 に答える