【问题标题】:sensor time stamp calculation error传感器时间戳计算错误
【发布时间】:2016-04-10 04:26:47
【问题描述】:

关于理解传感器事件中的时间戳有很多问题。
我尝试了自己的方法以获取纳秒的真实事件时间:
(System.currentTimeMillis()-SystemClock.uptimeMillis() )*1000000 + event.timestamp

System.currentTimeMillis()-SystemClock.uptimeMillis()
这是以毫秒为单位获取系统启动时间。

System.currentTimeMillis()-SystemClock.uptimeMillis()*1000000
在纳秒内完成。

整个想法是系统启动时间 + 事件正常运行时间。

我使用以下调试:
Calendar cl = Calendar.getInstance(TimeZone.getTimeZone("Hongkong")); cl.setTimeInMillis( ( (System.currentTimeMillis()-SystemClock.uptimeMillis() )*1000000 + event.timestamp) /1000000);

Log.v(LOGTAG, "event happened at: " + cl.get(Calendar.DAY_OF_MONTH) + ":" + (cl.get(Calendar.MONTH)+1) + ":" + cl.get(Calendar.YEAR) + " " + cl.get(Calendar.HOUR_OF_DAY) + ":" + cl.get(Calendar.MINUTE) + ":" + cl.get(Calendar.SECOND));

得到的是错误的时间,相同的日期大约半小时后。
因为不是一小时错误,我认为它与时区无关。

希望看到建议。
谢谢

【问题讨论】:

  • 突然错误到 20 小时

标签: android time android-sensors


【解决方案1】:

问题是由于ROM错误。
这是一个非官方ROM,具有快速重启功能。
它会重置系统运行时间,但不会重置事件时间戳。
当系统快速重启后,事件时间戳不是0/1这种小数字,而是你上次真正/硬重启后的纳秒。

【讨论】:

    猜你喜欢
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2015-01-26
    • 2015-08-06
    • 2022-01-16
    相关资源
    最近更新 更多