我的应用程序使用Android 4.4.X中引入的步数检测器传感器API进行后台步数计数。对于我的应用程序来说,知道每个步骤事件发生的确切时间(至少精确到一秒)非常重要。
由于我执行了传感器批处理,因此调用
关于此字段的文档如下:
我知道,已经有一个旧的未解决问题与此相关,但是自从引入了传感器批处理 - 使用这个字段来知道事件时间变得更加重要,不能再依赖
由于我执行了传感器批处理,因此调用
onSensorChanged(SensorEvent event)
的时间并不是步骤事件发生的时间。我必须使用event.timestamp
字段来获取事件时间。关于此字段的文档如下:
问题: 在某些设备(例如Moto X 2013),这个时间戳似乎是自启动以来的纳秒时间,而在某些设备(例如Nexus 5)中,它实际上返回的是通用系统时间(纳秒),与事件发生时的纳秒时间
System.currentTimeMills() / 1000
相同。我知道,已经有一个旧的未解决问题与此相关,但是自从引入了传感器批处理 - 使用这个字段来知道事件时间变得更加重要,不能再依赖
System.currentTimeMills()
了。
我的问题:
为了在所有设备上始终以系统毫秒获取事件时间,我应该怎么做?