如何从sensorevent.timestamp为Android显示确切的时间?

时间:2016-08-07 22:09:30

标签: java android time sensor android-dateutils

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

1 个答案:

答案 0 :(得分:0)

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

(DateTime.now().getMillis() - SystemClock.elapsedRealtime()) * 1000000
                + sensorEvent.timestamp