我认为TYPE_ACCELEROMETER
显示了设备加速。但是,我不知道什么时候应该使用TYPE_LINEAR_ACCELERATION
我需要计算移动设备的速度。哪种传感器适合此应用?
此外,我读到TYPE_LINEAR_ACCELERATION
使用加速度计和方向来知道重力的方向,然后潜水。
这怎麽可能?Android如何找出设备的方向并减去它?
发布于 2014-12-14 02:00:21
根据http://developer.android.com/reference/android/hardware/SensorEvent.html#values的说法,TYPE_LINEAR_ACCELERATION
等同于TYPE_ACCELEROMETER
减去重力:acceleration = gravity + linear-acceleration
。因此,使用TYPE_LINEAR_ACCELERATION
无法检测设备方向,因为它不提供重力数据。
加速度是物体位置的二阶导数,速度(速度)是一阶导数。这意味着你可以根据加速度计算速度的相对变化,但一般情况下,你不能从它知道变化应用于速度的确切值。例如,你不能说手机是站在房间里的桌子上,还是在不断移动的汽车里,在这两种情况下,加速度都可能为零。
游戏使用加速计输入来跟踪用户的反馈,因为对于游戏来说,无论用户是坐在移动的汽车里还是坐在家里的桌子上,加速都非常适合这一目的(过滤掉速度数据)。如果你真的需要速度,那么你应该使用其他传感器,如全球定位系统。
这可能是一个安全的假设,即手机最初的速度与用户相同,因此您可以计算用户扔掉手机时相对于用户的速度,但仅此而已。
https://stackoverflow.com/questions/27461394
复制相似问题