可能重复:
关于Android上X轴旋转的问题
我想用 Android 传感器检测绕 X 轴的正确旋转。谷歌搜索后,我找到了这段代码:
public void onSensorChanged(SensorEvent event) {
Sensor sensor = event.sensor;
switch(sensor.getType()) {
case Sensor.TYPE_ACCELEROMETER:
mAcc = event.values.clone();
break;
case Sensor.TYPE_MAGNETIC_FIELD:
mMag = event.values.clone();
break;
}
if (mAcc == null || mMag == null) return;
float R[] = new float[9];
if (SensorManager.getRotationMatrix(R, null, mAcc, mMag)) {
SensorManager.getOrientation(R, mOrientation);
}
}
mOrientation[1] 表示围绕 X 轴的弧度。但是,该值非常奇怪。
- 当手机平放在桌子上时,它是 0。
- 当手机头部指向地面时,为PI/2。
- 当手机平底朝上放在桌子上时,它又是 0。
- 当手机的头指向天空时,它-PI/2。
1,2 之间的状态与 2,3 之间的状态具有相同的旋转值。我怎么知道我的手机处于哪个状态?