Android线性加速

时间:2011-10-23 05:14:31

标签: android input accelerometer

加速计可以检测设备的移动(例如,如果我向上,向下,向左或向右拖动设备)?请提供示例实施。

4 个答案:

答案 0 :(得分:4)

加速度计和陀螺仪可以检测设备在3轴上的角度和加速度。

由于加速度本身并不能告诉你速度和距离,你可以了解它们。

但是如果您知道设备的速度当前为0,并且它开始加速,您可以通过基本物理方程式了解它的速度和距离: 您可以跟踪设备加速度。让跟踪分辨率为毫秒。所以每毫秒speed += Acceleration * 0.001distance += (speed * 0.001) + (Acceleration * 0.001 * 0.001 /2)。这会跟踪单向的移动。

请注意,您必须确定加速度,速度和距离的方向,这将是Vector3。然后使用一些数学变换将当前加速度矢量转换为您的方向。我建议方向与地球相比是平坦的。以后会更轻松。

这可用于判断设备是否正在移动(speed!=0,但如果移动完全垂直于矢量,则设备可能正在移动,但speed==0是真的)和哪个方向是运动

答案 1 :(得分:2)

加速度计检测加速度,而不是恒定运动。因此,您的加速度计会在启动和停止时检测到运动,但无法告诉您设备移动的距离。

答案 2 :(得分:0)

请看这个主题:Android TYPE_LINEAR_ACCELERATION sensor - what does it show?

我使用加速度计检测设备的速度,移动。但是使用LINEAR_ACCELEROMETER传感器时遇到了麻烦。 无论如何,在起点没有校准的情况下计算运动是不可能的。

答案 3 :(得分:0)

有一个很好的例子,说明如何从Android开发者网站上的常规Sensor.TYPE_ACCELEROMETER计算线性加速度:

http://developer.android.com/reference/android/hardware/SensorEvent.html#values