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

时间:2014-12-13 17:04:15

标签: android android-sensors

我认为TYPE_ACCELEROMETER显示设备加速。但是,我无法理解何时应该使用TYPE_LINEAR_ACCELERATION? 我需要计算移动设备的速度。哪种传感器适用于此应用?

另外,我读到TYPE_LINEAR_ACCELERATION使用加速度计和方向来知道引力的位置然后是潜艇。

这怎么可能? Android如何找出设备的方向并减去它?

1 个答案:

答案 0 :(得分:2)

根据http://developer.android.com/reference/android/hardware/SensorEvent.html#values TYPE_LINEAR_ACCELERATIONTYPE_ACCELEROMETER相同,减去重力:acceleration = gravity + linear-acceleration。因此,对于TYPE_LINEAR_ACCELERATION,您无法检测到设备方向,因为它无法提供重力数据。

加速是对象位置的二阶导数,速度( velocity )是一阶导数。这意味着您可以根据加速度计算速度的相对变化,但在一般情况下,您无法从中知道应用变化的精确速度值。例如,你不能说电话是站在房间的桌子上还是在不停地移动的汽车里,在这两种情况下,加速度可能都是零。

游戏使用加速度计输入来跟踪用户的反馈,因为如果用户坐在移动的汽车或家中的桌子上对游戏并不重要,加速就完全符合这个目的(过滤掉速度)数据)。如果你真的需要速度,那么你应该使用其他传感器,例如 GPS

这可能是一个安全的假设,即手机最初具有与用户相同的速度,因此您可以计算用户相对于用户丢弃手机的速度,但这一切都是。