0
我目前正在研究一個小指南針應用程序。到目前爲止,我得到了指南針的工作。我正在使用TYPE_ROTATION_VECTOR
,因爲結果比使用TYPE_ACCELEROMETER
與TYPE_MAGNETIC_FIELD
結合要穩定得多。這是我的代碼來計算方位角:Android傳感器:指南針
SensorManager.getRotationMatrixFromVector(rotationMatrix, sensorEvent.values);
// original values are within [-180,180]
azimuth = (float) (Math.toDegrees(SensorManager.getOrientation(rotationMatrix, orientation)[0]) + 360) % 360;
如果設備平放在桌子上,結果是正確的。如果我擡起手機,站立(屏幕正對着我),我得到的結果不正確。我想這是因爲我的座標軸改變了。我如何正確檢測並處理這個問題?