SensorEvent.timestamp
はシステムブート時からの経過時間(ナノ秒)。
じゃあSensorEvent
をもらった時のいわゆるUNIX時間をもらいたいときはどうしたらいいんだ?となって書いてみたのが以下のコード。
MySensorListener.java
long eventOccuredTimeMilli = -1;
long eventOccuredTimeNano = -1;
@Override
public void onSensorChanged(SensorEvent event){
if (eventOccuredTimeMilli < 0){
eventOccuredTimeMilli = System.currentTimeMillis();
eventOccuredTimeNano = event.timestamp;
}
long unixtime = eventOccuredTimeMilli
+ (event.timestamp - eventOccuredTimeNano) / 1000000;
// 後略
}
イケてない。。。
SensorEvent.timestamp
の値ってSystem.nanoTime()
でもらえる値と一緒なのでしょうか。C++力低すぎて追いかけきれませんでした。リスナー作る時に一回調べるだけで済ませたいですよね。