我正在尋找替代已棄用的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
算法是如何在內部執行的?
如何檢測正確的方向和旋轉風景/肖像? –