iphone - 使用设备运动代替加速度计,陀螺仪和磁力计

时间:2011-10-16 12:28:51

标签: iphone ios cocoa-touch accelerometer gyroscope

如果我在iOS4上,没有使用特定的处理程序,并且需要相同的更新间隔,那么使用Device运动而不是特定的Accelerometer,Gyroscope和Magnetometer更新会有什么不同?

如果我使用设备动作,如果设备上没有这3个功能中的一个,会发生什么?

我的意思是,如果其中一个功能不可用,将返回deviceMotionAvailable?

1 个答案:

答案 0 :(得分:3)

在iOS 4中,磁力计尚未包含在设备动作API中,但由CLLocationManager处理(在iOS 5中已更改)。因此,如果您有陀螺仪和加速度计,deviceMotioAvailable将独立于磁力计返回true。另一方面,如果缺少陀螺仪,您将始终获得false,并且需要保持accelerometerData

由于Device Motion对两个传感器都有一个时间戳,因此您将获得两个传感器的可靠插值。否则,Device Motion将无法进行传感器融合,这是首选方式的主要优势。

您不能依赖CLLocationManager的修复频率。只要系统'认为'它应该是,就会调用didUpdateHeading。要获得标准化的CLLocationManager和CMDeviceMotion之间的不同时间坐标,您可以查看NSTimeInterval to unix timestamp