Я пытаюсь записать метки времени различных событий датчика как можно точнее. Обычно я просто использовал бы 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.
Как видите, они отключены на 30922827 нс или 30,9 мс, что довольно мало, когда речь идет о событиях датчика, которые называются 200 мс.
Итак, мой вопрос: Какую временную метку я должен использовать для максимально точного сравнения с другими событиями датчика?
Кроме того, просто добавьте. Я буду записывать метку времени в следующем блоке кода.
@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;
...
}
}