当前位置: 代码迷 >> 综合 >> Android 加速度传感器(G-Sensor)
  详细解决方案

Android 加速度传感器(G-Sensor)

热度:62   发布时间:2023-12-06 18:22:23.0

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

  相关解决方案