23

IOS5 的发布将这个核心功能列为 deprecated。有谁知道什么会取代它?我假设苹果不会从 iPhone 5 中移除加速度计。

4

1 回答 1

29

我还没有使用 iOS 5,但已经在 4.x UIAccelerometer 和 UIAccelerometerDelegate 被 CoreMotion 框架取代。它更复杂,将陀螺仪信号考虑在内并执行传感器融合,即为您校准诸如偏差计算之类的东西。

基本上 CMDeviceMotionHandler 块回调现在是等效的。它每 deviceMotionUpdateInterval 秒调用一次,或者您可以使用自己的计时器循环并提取数据。它非常简单易用。查看Simple iPhone 运动检测并点击 SDK 文档的三个链接。

您必须牢记三件事:

  • 使用 Device Motion 需要 iPhone 版本 >= 4 或最新一代的 iPod touch,因为它依赖陀螺仪支持
  • 使用 Device Motion 时,您不能使用低通滤波来提取重力,因为它是为您完成的
  • 如果要支持较旧的硬件,则必须使用原始数据。这是通过创建 CMAccelerometerHandler 并调用startAccelerometerUpdatesToQueue:withHandler:来完成的。然后你必须像在 didAccelerate 中那样使用低通滤波来提取重力
于 2011-07-20T14:16:38.620 回答