我正在寻找替代已弃用的Android传感器Sensor.TYPE_ORIENTATION
的解决方案。已弃用的Sensor.TYPE_ORIENTATION的等效替换
最报告解决方案是Sensor.TYPE_ACCELEROMETER
和Sensor.TYPE_MAGNETIC_FIELD
结合,然后通过使用SensorManager#getRotationMatrix
计算旋转矩阵,将获得的欧拉角通过使用SensorManager#getOrientation
。 另有报道解决方案是使用Sensor.TYPE_ROTATION_VECTOR
,这也与旋转矩阵结束和欧拉角通过使用SensorManager#getOrientation
不幸的是旋转所述移动设备时,那些表现到TYPE_ORIENTATION
完全不同。当手机放在桌子上时,尝试两种类型,然后将其调高(俯仰)至90°(屏幕现在直接朝向您)。计算出的方位角和滚转欧拉角变得非常狂野(原因是Gimbal lock问题),而用TYPE_ORIENTATION
检索的度数值非常稳定(不准确但非常好)。 TYPE_ORIENTATION
的每个值(偏航,俯仰和滚转)似乎都是某种“预测”程度,而没有万向节锁定问题。
没有使用折旧的TYPE_ORIENTATION
传感器(可能来自旋转矩阵),获得类似程度(偏航,滚动和俯仰)的方法是什么? TYPE_ORIENTATION
算法是如何在内部执行的?
如何检测正确的方向和旋转风景/肖像? –