Wir erstellen eine standortfähige App, mit der Benutzer bestimmte Ereignisse in diesem Feld aufzeichnen können.
Der wichtige Teil der Ereignisdaten ist, wann ein Ereignis passiert ist. Dies ist kein Problem, wenn der Benutzer online ist, aber wir unterstützen auch Situationen, in denen der Benutzer offline ist (durch Merken und späteres Synchronisieren von Ereignissen).
Es kann Situationen geben, in denen Benutzer offline sind und die Uhrzeit auf dem Telefon ändern, sodass die Ereigniszeiten falsch aufgezeichnet werden.
Was wäre also der beste Weg, um sicherzustellen, dass wir unabhängig von Benutzeraktionen eine korrekte Uhrzeit erhalten, wenn das Gerät offline ist? Einige Ideen:
Hinweis: Die Zeit benötigt eine zweite Genauigkeit, eine ungefähre Genauigkeit wäre in Ordnung.
Hinweis2: Wir erstellen mobile Apps für Android und iPhone. Daher bin ich an generischen Lösungen und auch an Lösungen für diese beiden Plattformen interessiert.
Ich persönlich würde mir über dieses Szenario nicht so viele Sorgen machen. Die Wahrscheinlichkeit, dass jemand die Zeit auf seinem Android absichtlich ändert (was periodisch über einen Tag hinweg automatisch mit einem Zeitserver synchronisiert wird), während ich offline bin, scheint mir gering zu sein. Davon abgesehen, kann ich den Ausgleich nur dadurch erreichen, dass ein Dienst im Hintergrund ausgeführt wird, der eine laufende Anzahl von Sekunden seit der Offline-Aufzeichnung der Standortdaten enthält. Nach dem Hochladen auf Ihre Server können Sie die verstrichenen Sekunden verwenden, um einen Zeitversatz von der aktuellen UTC-Zeit zu berechnen. Es ist eine Menge zu durchlaufen, aber es würde funktionieren.
GPS-Zeit ist eine interessante Idee, aber Android ermöglicht es Benutzern des SDK, Scheinspeicherorte an ihre Geräte zu senden. Ich bin mir nicht sicher, ob Sie Änderungen an der Systemzeit zuverlässig verfolgen könnten, und selbst wenn Sie könnten, würden Sie sie nach der Tat ohne die aktuelle Echtzeit als Kontext erfassen.
Wir verwenden GPS-Zeiten in unserer App aus sehr ähnlichen Gründen. Da sich unsere Benutzer in unterschiedlichen Zeitzonen befinden und wir lokale Zeiten wünschen, definieren wir von unserem Server aus, in welcher Zeitzone sie sich zur Installationszeit befinden (sie bewegen sich nicht sehr weit). Hatte nicht an die falschen GPS-Standorte gedacht, aber Sie müssen ein ziemlich fortgeschrittener Benutzer sein, um das zu tun.