Synchronisieren von Zeitstempeln über mehrere Geräte hinweg

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 Date 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 will.

Ich sehe irgendwo im Bereich von 50-100 ms, wenn möglich. Eine Idee, die ich hatte, 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 bekommen 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 das Schema vollständig auseinanderfällt.

  • Wie verwende ich Android 6.0 Runtime Berechtigungen auf vorhandene App
  • MapActivity: APIKey programmgesteuert einstellen
  • Warum wird der Android-Browser diesen Absatz nicht über die volle Browserbreite überspannen?
  • Ändern Sie z-order of Fragments während der laufenden FragmentTransaction
  • Wie beschränke ich Sonderzeichen aus einem Android EditText-Feld?
  • Android - Warum gehorsätze für geofences verwenden
  • Wie kann ich zwei oder mehr Geräte synchronisieren, damit ihre internen Uhren nicht mehr als 100 ms voneinander entfernt sind? Ist das auch möglich, ohne einen externen Server zu benutzen, der Zeit hält?

    Alle anderen Vorschläge für Techniken, um etwas über mehrere Geräte so nah wie möglich gleichzeitig zu machen, wäre auch willkommen.

  • Statische Singleton-Lebensdauer in Android
  • Android-Datenbindung mit inkl. Tag
  • Wie man irgendeinen HTML-Farbcode halb durchsichtig macht
  • Implementieren Endloses Scrollen auf ListView
  • Füge lokalen javadoc zu lokalen aar in Android-Studio hinzu
  • Alle Datensätze von sqlite android erhalten
  • 4 Solutions collect form web for “Synchronisieren von Zeitstempeln über mehrere Geräte hinweg”

    Warum nicht die GPS-Zeit verwenden? Die Zeit-Tags von GPS sind ziemlich genau.

    Sie können sich auf alle Geräte zu einem bestimmten Zeitpunkt zustimmen und dann starten, wenn das GPS sagt Ihnen zu.

    Im Wesentlichen haben Sie zwei Möglichkeiten: den einfachen Weg oder den harten Weg.

    Der einfache Weg ist, eine einzelne externe Quelle für Zeitsignale, wie NIST , eine andere Internetquelle oder GPS zu verwenden, wie @Stefan vorschlägt. Internetquellen verwenden NTP, siehe diese Java NTP Client Frage.

    Der harte Weg ist, die Uhrzeitsynchronisation zwischen den Geräten zu machen.

    Ich kämpfe jetzt mit der gleichen Frage. Ich versuchte gps Zeit, aber ich kann nicht garantieren, dass der Benutzer gps Signal drinnen haben wird.

    Meine Lösung war, dass alle Geräte die Zeit von einem Nist-Server abrufen und dann einfach die Zeitdifferenz mit System.currentTimeMillis () hinzufügen oder subtrahieren

    Wenn die Geräte verwurzelt sind, können Sie versuchen, die Uhren zu synchronisieren.

    https://play.google.com/store/apps/details?id=ru.org.amip.ClockSync&hl=de

    Android GPS-Hardware haben in der Regel nur Sekunden Genauigkeit. Die drei letzten Zeitstempelzahlen der Millisekunden float Zahl sind 000.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.