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://blog.youkuaiyun.com/sfrysh/article/details/5889175
下面是一些基本概念,转自: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-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
|