我想要發生的是重新映射座標系,當手機離開它的「自然」方向時。因此,當使用手機並且處於橫向模式時,它應該讀取相同的值,就好像它被放在肖像中一樣。重新映射傳感器座標
我在檢查旋轉是否等於Surface.ROTATION_90
,如果是,則重新映射座標系。
我承認我不太明白如何正確使用它,並可以使用一點指導。
所以,你需要運行這兩種方法:
SensorManager.getRotationMatrix(inR, I, grav, mag);
SensorManager.remapCoordinateSystem(inR, SensorManager.AXIS_Y,SensorManager.AXIS_MINUS_X, outR);
什麼需要傳遞到這些方法呢?我創建了一個新的浮點數組,然後只將orientationsensor數據傳遞給mag域,這不起作用。所以,我註冊了加速度計和磁場傳感器。將這兩種數據都送到getRotatioMatrix
方法,我總是得到一個NullPointerException
(即使JavaDoc說某些參數可以爲空)。我甚至嘗試將數據傳遞給每個參數,並且仍然有NullPointerException
。
我的問題是,我需要傳遞給getRotationMatrix方法的正確數據是什麼?