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.csdn.net/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-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
|