1

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

1 回答 1

0

SensorEvent 以纳秒为单位报告系统启动后的时间(包括睡眠时间)。要将其转换为以纳秒为单位的绝对时间,请使用以下公式:

(DateTime.now().getMillis() - SystemClock.elapsedRealtime()) * 1000000
                + sensorEvent.timestamp
于 2018-12-21T20:49:20.277 回答