Android 加速度传感器的类型是  Sensor.TYPE_ACCELEROMETER

通过 android.hardware.SensorEvent 返回加速度传感器值。

 

加速度传感器返回值的单位是加速度的单位 m/s^2(米每二次方秒),有三个方向的值分别是

 values[0]: x-axis 方向加速度 

values[1]: y-axis 方向加速度 

values[2]: z-axis 方向加速度 

  

其中x,y,z方向的定义是以水平放置在的手机的右下脚为参照系坐标原点(如下图)

x 方向就是手机的水平方向,右为正

y 方向就是手机的水平垂直方向,前为正

y 方向就是手机的空间垂直方向,天空的方向为正,地球的方向为负

  

x<0         x>0
                 ^
                 |
     +-----------+-->  y>0
     |           |
     |           |
     |           |
     |           |   / z<0
     |           |  /
     |           | /
     O-----------+/
     |[]  [ ]  []/
     +----------/+     y<0
               /
              /
            |/ z>0 (toward the sky)    O: Origin (x=0,y=0,z=0)

 

需要注意的是,由于地球固有的重力加速度g (值为9.8 m/s^2),

因此现实中实际加速度值应该是 z方向返回值 - 9.8 m/s^2.

比如你以 2 m/s^2 的加速度将手机抛起,这时z方向的返回值应该是 11.8 m/s^2.

反之若以手机以2 m/s^2 的加速度坠落,则z方向的返回值应该是 7.8 m/s^2.

x,y方向则没有上述限制.

以上转自:


下面是一些基本概念,转自:http://www.androidegg.com/portal.php?mod=view&aid=612&page=1

1.4 加速度传感器
    加速度传感器是为了检测物体的加速度的传感器。物体运动加速度也跟着变化,如果能取到加速度,物体受到什么样的作用力或则物体进行什么样的运动,我们就可以知道。使用加速度,我们就能做模拟计步器、物体运动的应用程序。
1.4.1  通过加速度传感器能取到的值
  我们可以通过Android的加速度传感器可以取得x,y,z三个轴的加速度(如图1-4)。
   加速度值受地球重力的影响值也不一样。这就涉及到物理知识了,我就不细阐述了。也不是一句两句能说清楚的。在SensorManager类中定义了很多星体的重力加速度值。如表1-7
   


   图 1-4 加速度传感器的轴


表1-7 SensorManager 类被定义的各新星体的重力加速度值


常量名

说明

实际的值

GRAVITY_DEATH_STAR_1

死亡星

3.5303614E-7

GRAVITY_EARTH

地球

9.80665

GRAVITY_JUPITER

木星

23.12

GRAVITY_MARS

火星

3.71

GRAVITY_MERCURY

水星

3.7

GRAVITY_MOON

月亮

1.6

GRAVITY_NEPTUNE

海王星

11.0

GRAVITY_PLUTO

冥王星

0.6

GRAVITY_SATURN

土星

8.96

GRAVITY_SUN

太阳

275.0

GRAVITY_THE_ISLAND

岛屿星

4.815162

GRAVITY_URANUS

天王星

8.69

GRAVITY_VENUS

金星

8.87