我正在开发一个使用HTC魔术的项目,需要来自电子罗盘的数据,包括加速度计和磁传感器。但我发现手机的移动与sensorChanged事件的触发之间存在明显的延迟。换句话说,从传感器获得的加速度和磁力数据在我的运动后大约半秒更新。关于这个问题我有几个问题如下。
加速度和磁力数据计算的方向数据是?或者是否有物理传感器用于定位?
延迟是否来自android API(使用事件)或电子罗盘的物理限制?
据说电子罗盘的型号是Asahi Kasei的AK8976A。有人有数据表或知道抽样的频率吗?
有什么想法可以改善实时体验吗?
提前谢谢!
答案 0 :(得分:0)
当您注册SensorEventListener时,您使用的是什么速率?您应该使用SENSOR_DELAY_GAME
在频繁更新之间取得最佳平衡,而不是过度更新更新队列,如果SENSOR_DELAY_FASTEST
,实际上会导致更新速度变慢。
关于你的其他问题,我认为他们没有实际意义。您看到的更新延迟是由API引起的,还是实际的罗盘本身,您无法更改它。
答案 1 :(得分:0)
我确实想到了这一点。事实证明,在2.2中您不能使用标准SENSOR_DELAY_UI,SENSOR_DELAY_NORMAL等以外的传感器速率。文档声称您还可以指定通知之间的微秒数,但它们是在说谎。
一旦我使用标准常量,它就开始使用2.2