在 iOS SDK 中,如何检测用户的移动?这是假设:
- 用户水平握住 iPhone(与地板平行)
- iPhone是3GS / 4 / 4s
- 定位服务已开启(我需要这个吗?)
- 用户四处走动,所以我要检测他走了多长时间(不需要准确)
- 支持的操作系统是 iOS 4 & 5
我已经实现CMDeviceMotion
了方向、倾斜和俯仰检测,但我仍然不知道如何检测用户的移动。请指教。太感谢了!
在 iOS SDK 中,如何检测用户的移动?这是假设:
我已经实现CMDeviceMotion
了方向、倾斜和俯仰检测,但我仍然不知道如何检测用户的移动。请指教。太感谢了!
仅使用加速度计和陀螺仪无法精确检测设备的运动。
因为加速度计提供加速度,即您需要积分两次的时间的第二次推导。尽管传感器非常精确,但由于错误传播,这会在几个周期后导致巨大的错误。只要没有固定的参考点来重新校准计算,即使像卡尔曼滤波器这样的繁重数学也不能提供可接受的结果。
如果用户是在跑步而不是走路,你会得到一个稍微不同的情况,因为可以用作计步器的更强的上下运动。我不知道是否有人设法让这个工作,但对我来说似乎基本上是可能的,尤其是与 GPS 结合使用。即便如此,仍然存在一些问题,例如待机模式或电话中断,将您的应用程序推送到后台。