TYPE_ACCELEROMETER和TYPE_LINEAR_ACCELERATION传感器有什么区别?

7
我认为TYPE_ACCELEROMETER显示设备的加速度。然而,我不明白何时应该使用TYPE_LINEAR_ACCELERATION
我需要计算移动设备的速度。哪种传感器适用于此应用程序?
另外,我读到TYPE_LINEAR_ACCELERATION使用加速度计和方向来确定重力指向,然后进行减法运算。
这是如何实现的?Android如何找出设备的方向并进行减法运算?
1个回答

8
根据http://developer.android.com/reference/android/hardware/SensorEvent.html#valuesTYPE_LINEAR_ACCELERATIONTYPE_ACCELEROMETER相同,减去了重力:acceleration = gravity + linear-acceleration。因此,使用TYPE_LINEAR_ACCELERATION无法检测设备的方向,因为它不提供重力数据。 加速度是物体位置的二阶导数,速度(速率)是一阶导数。这意味着您可以从加速度计算出相对于速度的变化,但在一般情况下,您无法知道它所应用的确切速度值。例如,您无法确定手机是放在房间里的桌子上还是在不断移动的汽车中,因为在这两种情况下,加速度可能为零。
游戏使用加速度计输入来跟踪用户反馈,因为对于游戏来说,用户坐在移动的汽车里或者在家中的桌子前并不重要,加速度正好完美地适合这个目的(过滤掉速度数据)。如果您真的需要速度,那么您应该使用其他传感器,比如GPS
可以安全地假设手机最初与用户的速度相同,因此您可以计算用户扔掉手机时相对于用户的手机速度,但仅限于此。

我认为可以计算。 - Taher
当然可以,如果你假设手机的初始速度为零。这取决于你的使用情况。 - Mixaz
我需要某个应用程序的速度和位移,但该设备无法访问GPS。此外,GPS不够准确。有时它会给出超过20米的精度。 可以使用加速度计来计算速度,但我不知道哪个传感器可以正确地提供速度和位移。 - Taher
我认为你已经知道了计算速度的公式,就像这样:http://www.ajdesigner.com/constantacceleration/cavelocity.php 你需要计算一个积分。 - Mixaz
你是不是想说TYPE_ACCELEROMETER而不是TYPE_ACCELERATION? - Don Hatch
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接