センサイベントのタイムスタンプを理解することには多くの疑問があります。
二ナノで実際のイベント時刻を取得するために従うように私は自分自身の方法を試してみました:
(System.currentTimeMillis()-SystemClock.uptimeMillis())*1000000 + event.timestamp
センサタイムスタンプ計算エラー
System.currentTimeMillis()-SystemClock.uptimeMillis()
をこれは、ミリ秒単位のシステムの開始時刻を取得することです。
System.currentTimeMillis()-SystemClock.uptimeMillis()*1000000
ナノ秒単位で作成してください。
全体のアイデアは、システムの開始時間+イベントの稼働時間です。私はデバッグに次の使用
:
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));
取得で何が約半分の時間後にエラー、同日付での時間です。
1時間のエラーではないため、タイムゾーンに関連していないとみなします。
希望をお待ちしています。
ありがとう
突然エラーが20時間になる – user3042713