如果我在iOS4上,没有使用特定的处理程序,并且需要相同的更新间隔,那么使用Device运动而不是特定的Accelerometer,Gyroscope和Magnetometer更新会有什么不同?
如果我使用设备动作,如果设备上没有这3个功能中的一个,会发生什么?
我的意思是,如果其中一个功能不可用,将返回deviceMotionAvailable?
答案 0 :(得分:3)
在iOS 4中,磁力计尚未包含在设备动作API中,但由CLLocationManager处理(在iOS 5中已更改)。因此,如果您有陀螺仪和加速度计,deviceMotioAvailable
将独立于磁力计返回true
。另一方面,如果缺少陀螺仪,您将始终获得false
,并且需要保持accelerometerData
。
由于Device Motion对两个传感器都有一个时间戳,因此您将获得两个传感器的可靠插值。否则,Device Motion将无法进行传感器融合,这是首选方式的主要优势。
您不能依赖CLLocationManager的修复频率。只要系统'认为'它应该是,就会调用didUpdateHeading
。要获得标准化的CLLocationManager和CMDeviceMotion之间的不同时间坐标,您可以查看NSTimeInterval to unix timestamp