Es gibt viele Fragen zum Verständnis des Zeitstempels im Sensorereignis.
Ich habe versucht, meinen eigenen Weg, wie folgen die reale Ereigniszeit in Nanosekunden zu erhalten:
(System.currentTimeMillis()-SystemClock.uptimeMillis())*1000000 + event.timestamp
Sensor Zeitstempel Berechnung Fehler
System.currentTimeMillis()-SystemClock.uptimeMillis()
Dies ist das System Startzeit in Millis zu bekommen.
System.currentTimeMillis()-SystemClock.uptimeMillis()*1000000
Machen Sie es in Nanosekunde.
Die ganze Idee ist System Startzeit + Betriebszeit bis Ereignis.
Ich benutze folgendes Debug:
Calendar cl = Calendar.getInstance(TimeZone.getTimeZone("Hongkong")); cl.setTimeInMillis(((System.currentTimeMillis()-SystemClock.uptimeMillis())*1000000 + event.timestamp) /1000000);
Log.v(LOGTAG, "event happened at: " + cl.get(Calendar.DAY_OF_MONTH) + ":" + (cl.get(Calendar.MONTH)+1) + ":" + cl.get(Calendar.YEAR) + " " + cl.get(Calendar.HOUR_OF_DAY) + ":" + cl.get(Calendar.MINUTE) + ":" + cl.get(Calendar.SECOND));
Was bekommt, ist die Zeit mit Fehlern, gleichem Datum mit etwa einem halben Stunde später.
Weil nicht eine Stunde Fehler, nehme ich an, dass es nicht mit der Zeitzone zusammenhängt.
Ich hoffe, Vorschlag zu sehen.
Danke
plötzlich der Fehler zu 20 Stunden gehen – user3042713