通过组合TYPE_ACCELEROMETER和TYPE_MAGNETIC_FIELD来区分Sensor.TYPE_ROTATION_VECTOR和getOrientation

时间:2016-05-30 17:40:10

标签: android orientation android-sensors type-accelerators

我正在开发一个根据手机的实际位置操纵遥控车的应用程序。

因为Android不推荐使用TYPE_ORIENTATION(有人知道为什么不推荐使用它?)我正在使用(Magnetic_Field和Accelerometer)的RotationMatrix来获取当前工作正常的手机的方向。

但在我的研究过程中,我遇到了Sensor.TYPE_ROTATION_VECTOR来获取定向。这有什么好处或建议使用什么方法?

由于

1 个答案:

答案 0 :(得分:1)

TYPE_ROTATION_VECTOR通过操作系统级软件将多个传感器融合在一起。这是一个很好的教程,解释了差异,代码示例和作者的发现:https://www.journal.deviantdev.com/android-compass-azimuth-calculating/

我注意到在我的Nexus 5X上,方位角(指南针方向)不时变得不准确。但是,如果我转到其他内容,例如谷歌地图,它也会显示错误的罗盘方向。所以这似乎是设备,传感器或两者的问题。

TYPE_ROTATION_VECTOR确实提供了一些很好的平滑值,然后你可以添加一个低通滤波器,如果你想要额外的平滑。祝你好运!