如果我在 iOS4 上,不使用特定的处理程序,并且需要相同的更新间隔,那么使用设备运动而不是特定的加速度计、陀螺仪和磁力计更新有什么区别?
如果我使用设备 Action 时这 3 个功能中的一个在设备上不可用会怎样?
我的意思是,如果其中一个功能不可用,将返回什么 deviceMotionAvailable?
最佳答案
在 iOS 4 中,磁力计尚未包含在设备运动 API 中,而是由 CLLocationManager 处理(这在 iOS 5 中发生了变化)。因此,如果您有陀螺仪和加速度计,deviceMotioAvailable
将独立于磁力计返回 true
。另一方面,如果陀螺仪丢失,您将始终得到 false
,您需要继续使用 accelerometerData
。
由于 Device Motion 对两个传感器都有一个时间戳,因此您将获得两个传感器的可靠插值。否则 Device Motion 将无法进行传感器融合,这是首选方式的主要优势。
您不能依赖 CLLocationManager 的固定频率。 didUpdateHeading
在系统“认为”应该调用时调用。要使 CLLocationManager 和 CMDeviceMotion 之间的不同时间坐标标准化,您可以查看 NSTimeInterval to unix timestamp
关于iphone - 使用设备运动代替加速度计、陀螺仪和磁力计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7784241/