我刚刚意识到,在android上,您从GPS位置更新获取的时间戳自纪元以来以毫秒为单位,而SensorEvent更新(例如加速度计的)自启动以来以ns为单位.
我想将GPS时间戳转换为SensorEvent时间戳的格式,有人知道这样做的好方法吗?
我尝试了以下方法:
我从时代开始就测量了一次系统启动时间:
startupTime = System.currentTimeMillis() - SystemClock.uptimeMillis();
对于每个gps位置更新,我减去启动时间:
timestamp = loc.getTime() - startupTime;
但是那些转换后的时间戳仍然不符合SensorEvent时间戳,仍然相差几秒钟…
解决方法:
不要使用SystemClock.uptimeMillis(),因为它测量的是自启动以来的时间,而没有设备处于睡眠模式的时间.而是使用SystemClock.elapsedRealtime().