мое приложение выполняет подсчет фонового шага с использованием API-интерфейса датчика детектора шага, представленного в android 4.4.X.
Для моего приложения важно знать точное время (по крайней мере, с точностью до секунды) каждое событие шага.
потому что я выполняю пакетное дозирование, время onSensorChanged(SensorEvent event)
было вызвано не то же самое время, когда произошло событие шага - я должен использовать поле event.timestamp
для получения времени события.
документация об этом поле:
Время в наносекундах, при котором произошло событие
Проблема:
В некоторых устройствах (например, Moto X 2013) кажется, что эта временная метка - это время в nano секундах с момента загрузки, в то время как в некоторых устройствах (например, Nexus 5) она фактически возвращает универсальное системное время в nano секундах так же, как System.currentTimeMills() / 1000
.
Я понимаю, там уже есть старая открытая проблема, но поскольку введен пакетный пакет - , важно использовать это поле знать время события, и больше нельзя полагаться на System.currentTimeMills()
Мой вопрос:
Что делать, чтобы всегда получать время события в системных миллисекундах на всех устройствах?