我想显示检测到第一步的时间。但是该应用始终显示1970年1月1日。有人会检查出什么问题以及如何更改吗?这是我的代码:
public void run() {
SensorManager mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
Sensor mSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_STEP_DETECTOR);
mSensorManager.registerListener(new SensorEventListener() {
@Override
public void onSensorChanged(SensorEvent sensorEvent) {
long timeStamp = sensorEvent.timestamp / 1000000;
textView_moveTime.setText(DateUtils.getRelativeTimeSpanString(timeStamp));
}
@Override
public void onAccuracyChanged(Sensor sensor, int i) {
}
}, mSensor, mSensorManager.SENSOR_DELAY_FASTEST);
}
最佳答案
SensorEvent报告自系统启动以来的时间(以纳秒为单位)(包括睡眠时间)。
要将其转换为以毫微秒为单位的绝对时间,请使用以下公式:
(DateTime.now().getMillis() - SystemClock.elapsedRealtime()) * 1000000
+ sensorEvent.timestamp