【发布时间】:2021-06-03 16:00:16
【问题描述】:
旧的Sensor.TYPE_ORIENTATION 传感器返回 -180° 和 180° 之间的俯仰角。这是一个不错的 API,它包含过滤功能并且效果很好。遗憾的是,Sensor.TYPE_ORIENTATION 已被弃用,并且无法在现代手机上使用。
Sensor.TYPE_ORIENTATION 的有福替换是 Context.SENSOR_SERVICE 和 TYPE_MAGNETIC_FIELD 以及 SensorManager.getRotationMatrix() 和 SensorManager.getOrientation() 函数的复杂组合。在过滤方面,您只能靠自己。 (顺便说一句,我使用了 iirj - 我在 Stackoverflow 上找到的琐碎低通滤波器效果不如 Sensor.TYPE_ORIENTATION 所做的那样)
getOrientation 的文档声称它返回 -π 到 π 之间的间距。这不可能是真的,因为实现是 values[1] = (float) Math.asin(-R[7]);(asin 返回的值在 -π/2 和 π/2 之间)
有什么方法可以从旋转矩阵中获得完整的 360° 俯仰和横滚?
【问题讨论】:
标签: android matrix geometry android-sensors