等效替换已弃用的Sensor。TYPE_ORIENTATION

Zar*_*doz 5 android android-sensors

我正在寻找一种替代已弃用的Android传感器的解决方案Sensor.TYPE_ORIENTATION

报道最多的解决方案是结合Sensor.TYPE_ACCELEROMETERSensor.TYPE_MAGNETIC_FIELD,然后通过使用计算的旋转矩阵SensorManager#getRotationMatrix,将获得的欧拉角通过使用SensorManager#getOrientation。另一种已报道的解决方案是使用Sensor.TYPE_ROTATION_VECTOR,该解决方案还通过使用产生旋转矩阵和欧拉角SensorManager#getOrientation

不幸的是,它们的行为与TYPE_ORIENTATION旋转移动设备时的行为完全不同。将手机放在桌上时尝试两种类型,然后将其调高(倾斜)至90°(屏幕现在正对着您)。计算出的欧拉角和横摇角真的很疯狂(由于存在所谓的“ 云台锁定”问题),而使用检索的度值TYPE_ORIENTATION却相当稳定(不准确,但还可以)。每个值(偏航,俯仰和横滚)TYPE_ORIENTATION似乎都是某种“投影”度,而没有万向节锁定问题。

在不使用折旧TYPE_ORIENTATION传感器(可能来自旋转矩阵)的情况下,获得相似度数(偏航,侧倾和俯仰)的方法是什么?该TYPE_ORIENTATION算法在内部如何执行?

Hoa*_*yen 0

in是磁北与设备 y 轴在世界 xy 平面中的投影之间azimuthgetOrientation角度。当设备达到 90\xc2\xb0 时,投影为零矢量,因此在这种情况下方位角没有意义,可以是任何值。从物理上讲,尝试找到磁北和指向天空的矢量之间的角度是没有意义的。\n您应该在https://github.com/hoananguyen/dsensor/blob/master/dsensor/src上查看我的项目/main/java/com/hoan/dsensor_master/DProcessedSensor.java

\n