【发布时间】:2014-11-04 07:00:06
【问题描述】:
我的应用程序使用 android 4.4.X 中引入的step detector sensor API's 在后台计步。
对于我的应用来说,知道每个步骤事件产生的确切时间(至少精确到一秒)是很重要的。
因为我执行了sensor batching,所以调用onSensorChanged(SensorEvent event)的时间与step事件发生的时间不同-我必须使用event.timestamp字段来获取事件时间。
关于这个领域的文档是:
事件发生的时间(以纳秒为单位)
问题:
在某些设备(例如 Moto X 2013)中,此时间戳似乎是自启动后以纳秒为单位的时间,而在某些设备(例如 Nexus 5)中,它实际上以纳秒为单位返回通用系统时间,与 System.currentTimeMills() / 1000 相同。
我了解,已经有一个 old open issue 与此相关,但由于引入了传感器批处理 - 使用此字段 了解事件时间变得很重要,并且不再可能依赖System.currentTimeMills()
我的问题:
我应该怎么做才能在所有设备上始终以系统毫秒为单位获取事件时间?
【问题讨论】:
标签: android android-sensors nanotime