Ich versuche, die Zeitstempel zwischen mehreren Android-Geräten zu synchronisieren, damit ich gleichzeitig eine Aufgabe starten kann. Ich stelle fest, dass ich Timer verwenden und ein Datum basierend auf System.currentTimeMillis () einstellen kann, aber das Problem scheint zu sein, dass die Zeitstempel von mehreren Geräten gerade weit genug voneinander entfernt sind, dass ich nicht die Präzision bekomme, die ich möchte.
Ich schaue irgendwo in den Bereich von 50-100 ms, wenn möglich. Eine Idee war, Android Beam zu verwenden, um den Zeitstempel eines Geräts an das andere Gerät zu senden und dann ein Delta zu berechnen, aber es stellt sich heraus, dass ich den Zeitstempel abrufen muss, bevor die Nachricht tatsächlich gesendet und empfangen wird (dh je länger ein Benutzer ist) wartet, um zu senden, je größer das Delta sein wird), was dieses Schema komplett auseinanderfallen lässt.
Wie kann ich zwei oder mehr Geräte synchronisieren, so dass ihre internen Uhren nicht mehr als 100 ms voneinander entfernt sind? Ist das überhaupt möglich, ohne einen externen Server zu nutzen, der die Zeit hält?
Alle anderen Vorschläge für Techniken, um etwas über mehrere Geräte gleichzeitig so nahe wie möglich zu machen, wären ebenfalls willkommen.
Im Wesentlichen haben Sie zwei Möglichkeiten: die einfache oder die harte Art.
Der einfachste Weg besteht darin, eine einzige externe Quelle für Zeitsignale zu verwenden, z. B. NIST . eine andere Internetquelle oder GPS wie @Stefan vorschlägt. Internetquellen verwenden NTP, siehe Java NTP-Client Frage.
Der schwierige Weg ist Clock-Synchronisation zwischen den Geräten.
Ich habe gerade mit dem gleichen Problem zu kämpfen. Ich habe versucht, GPS-Zeit, aber ich kann nicht garantieren, dass der Benutzer GPS-Signal drinnen haben wird.
Meine Lösung bestand darin, dass alle Geräte die Zeit von einem NIST-Server abrufen und dann die Zeitdifferenz einfach mit System.currentTimeMillis ()
addieren oder subtrahierenWenn die Geräte gerootet sind, könnten Sie versuchen, die Uhren zu synchronisieren.
Tags und Links android