【发布时间】:2016-12-13 15:03:55
【问题描述】:
我想显示检测到第一步的时间。但该应用程序始终显示 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);
}
【问题讨论】:
-
我认为 Jan 01 1970 等于 0(即日期/时间的开始)。所以也许看看 0 是否被返回/设置。
-
由于
timestamp是纳秒级精度,不太可能在Unix纪元时基中,因此除以1000000不太可能。它可能使用相同的系统asnanoTime(),在这种情况下,您只使用它来计算从某个起点开始的相对时间。 -
非常感谢!我想我找到了原因。
标签: java android time sensors android-dateutils