如何比较来自不同传感器类型的Android SensorEvent?

时间:2019-07-02 16:48:04

标签: android android-sensors

我正在尝试尽可能准确地记录不同传感器事件的时间戳。通常,我只会使用sensorEvent.timstamp,但是我注意到当我打电话给SystemClock.elapsedRealtimeNanos()时会得到不同的读数。

例如:

Log.i("Time1", String.valueOf(sensorEvent.timestamp));
// 939,704,514,316,244

Log.i("Time2", String.valueOf(SystemClock.elapsedRealtimeNanos()));
// 939,704,545,239,071

// I added commas for readability but they aren't actually printed.

如您所见,它们之间的距离为30922827ns或30.9ms,这在称为200ms的传感器事件中相当可观。

所以我的问题是:我应该使用哪个时间戳与其他传感器事件尽可能准确地进行比较?


也可以添加。我将在以下代码块中记录时间戳。

@Override
public void onSensorChanged(SensorEvent sensorEvent) {
    int sensorType = sensorEvent.sensor.getType();
    switch (sensorType) {
        case Sensor.TYPE_GYROSCOPE:

            //sensorEvent.timestamp
            // OR
            //SystemClock.elapsedRealtimeNanos()

            break;
        case Sensor.TYPE_ACCELEROMETER:

            //sensorEvent.timestamp
            // OR
            //SystemClock.elapsedRealtimeNanos()

            break;
        ...
    }
}

0 个答案:

没有答案