在Android中翻转 - 方向传感器

时间:2013-12-17 07:56:24

标签: android rotation android-sensors android-orientation sensormanager

我尝试使用矢量旋转传感器在用户翻转设备时查找事件,以GS3停止音乐。

我的代码:

private SensorManager mSensorManager;
private final SensorEventListener mSensorListener = new SensorEventListener() {

    public void onSensorChanged(SensorEvent se) {
      float x = se.values[0];
      float y = se.values[1];
      float z = se.values[2];
      System.out.println("X Vector : " + x + " / Y Vector : " + y + " / Z Vector : " + z);
      if(//condition){
          //method1();
      }

    }
    public void onAccuracyChanged(Sensor sensor, int accuracy) {
    }
};
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mSensorManager.registerListener(mSensorListener, mSensorManager.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR), SensorManager.SENSOR_DELAY_NORMAL);

}

我使用System.out.println来查看x,y和z变量在我的翻转过程中是如何变化的,但我不明白这些值。当我让设备放在桌面上并且我启动Activity时,x,y和z并不总是为0.然后当我翻过它时,所有值都会改变并且仍然非常接近(-1和1之间的值)。

我的问题是,我怎样才能找到好的轴,以及在检测转弯时我必须考虑的价值是什么?

enter image description here

编辑:最后,使用Y ax代码工作正常,但如果活动上可以使用横向,则无法使用这些值。仅当仅使用纵向方向时,Y ax值才会更正。有想法同时使用吗?

0 个答案:

没有答案