- 当手机被持续,以至于屏幕指向地平线以下时,箭头指向与用户朝向相反的方向。
- 当手机的屏幕与地平线水平时,箭头无法确定其指向的方向。 方位角根本不返回有意义的结果。
- 当手机向左或向右倾斜(或保持横向模式)时,箭头向左或向右倾斜。
float[] rotationMatrix = new float[9];
if(SensorManager.getRotationMatrix(rotationMatrix, null, lastAcceleration, lastMagneticField)){
float[] orientMatrix = new float[3];
SensorManager.getOrientation(rotationMatrix, orientMatrix);
orientation = orientMat[0]*180/(float)Math.PI;
}
我做错了什么?有更简单的方法吗?
编辑:仅澄清,我假设用户将设备拿在面前,屏幕朝向他们。除此之外,我显然无法确定它们中是否只有一个旋转。此外,我正在使用用户移动时的动作,但这是针对他们静止时的情况。