2010-07-19 72 views
1

我想用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軸的弧度。但是,價值很奇怪。

  1. 當手機平放頂部朝上放在桌上,它的0
  2. 當指向地面電話的頭,它的PI/2。
  3. 當手機平躺在桌子底部時,它又是0。
  4. 當電話的頭指向天空時,它-PI/2。

1,2之間的狀態具有2,3之間的狀態相同的旋轉值。我怎麼知道我的手機在哪個狀態?

回答