Android传感器(动作)

时间:2012-02-03 22:58:51

标签: java android navigation android-sensors

我正在构建这个用于慢跑的Android应用程序,它应该测量用户从起始时间点开始的距离。

我对使用GPS选项(经度,纬度)不感兴趣,因此如果没有GPS选项并且仅使用安卓传感器,我如何计算设备作为时间函数的距离?

2 个答案:

答案 0 :(得分:2)

您在这里谈论的内容基本上是dead reckoning,即使用起始位置和已知变化来估算当前位置。理论上,如果你有一个准确的速度变化测量,你可以找出你最终的结果。有三个问题:

  1. 如果没有GPS,大多数智能手机都无法直接测量速度。相反,他们使用加速度计和陀螺仪来测量加速度和旋转,你必须根据这些来计算速度。

  2. 小的不准确性,特别是在测量期开始时,可​​能会导致很大的错误。

  3. 慢跑本质上涉及到许多小的速度变化,因为跑步者上下跳动,扭曲这种方式,避免障碍等等。准确地测量和计算所有这些变化,以避免引入相当多的错误将是困难的。

  4. 如果这是测量,编程,误差补偿等练习,那就去吧。如果您想准确确定慢跑者的最终位置,请使用GPS等其他定位系统。如果你只想估计行进的距离,我同意其他评论者试图测量步数并乘以用户的步幅可能是你能做的最好的。

答案 1 :(得分:1)

您最好的选择是在您的应用中检测“摇动”动作,然后使用它来确定距离(即一次震动等于一步,大约2000步是一英里)。当然,您可能希望微调灵敏度以确定需要多少运动才能算作一步。

这里有一个方便的教程来检测摇动:http://www.clingmarks.com/how-to-detect-shake-motion-on-android-phone/25