2013-04-21 86 views
0

我正在學習android中的加速度計。在綠色和藍色的手臂周圍傾斜手機時,我會獲得新的價值,但不是紅色的!Android加速度計只檢測到兩個維度的變化

enter image description here

這實際上是我的問題。這裏是我正在使用的代碼:

private SensorManager sensorManager; 

........... 

     sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE); 
     sensorManager.registerListener(this, 
       sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), 
       SensorManager.SENSOR_DELAY_NORMAL); 

........... 

    @Override 
    public void onSensorChanged(SensorEvent event) { 
     if (event.sensor.getType() == Sensor.TYPE_ACCELEROMETER) { 
      x = event.values[0]; 
      y = event.values[1]; 
      z = event.values[2]; 
     } 
    } 

回答

0

隨着紅色的,唯一的變化是加速向上和向下。這種加速度主要受重力影響,所以價值只有輕微的變化。

+0

謝謝。但我認爲必須有一種方法來測量圍繞該軸的旋轉。一定不是嗎? – 2013-04-21 20:56:17

+0

是的,這取決於手機的方向。如果你認爲它是屏幕和世界xy平面之間的角度,那麼它就是arcos(event.values [2])。 – 2013-04-21 21:05:15