我想显示检测到第一步的时间。但是该应用始终显示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

09-26 23:18