【发布时间】:2011-10-16 12:28:51
【问题描述】:
如果我在 iOS4 上,不使用特定的处理程序,并且需要相同的更新间隔,使用设备运动而不是特定的加速度计、陀螺仪和磁力计更新有什么区别?
如果我使用设备动作,这 3 个功能之一在设备上不可用会怎样?
我的意思是,如果其中一项功能不可用,会返回什么 deviceMotionAvailable ?
【问题讨论】:
标签: iphone ios cocoa-touch accelerometer gyroscope
如果我在 iOS4 上,不使用特定的处理程序,并且需要相同的更新间隔,使用设备运动而不是特定的加速度计、陀螺仪和磁力计更新有什么区别?
如果我使用设备动作,这 3 个功能之一在设备上不可用会怎样?
我的意思是,如果其中一项功能不可用,会返回什么 deviceMotionAvailable ?
【问题讨论】:
标签: iphone ios cocoa-touch accelerometer gyroscope
在 iOS 4 中,磁力计尚未包含在设备运动 API 中,而是由 CLLocationManager 处理(这在 iOS 5 中发生了变化)。因此,如果您有陀螺仪和加速度计,deviceMotioAvailable 将返回true,与磁力计无关。另一方面,如果陀螺仪丢失,您将始终得到false,您需要留在accelerometerData。
由于 Device Motion 对两个传感器都有一个时间戳,因此您将获得两个传感器的可靠插值。否则 Device Motion 将无法进行传感器融合,这是首选方式的主要优势。
您不能依赖 CLLocationManager 的固定频率。 didUpdateHeading 每当系统“认为”它应该被调用时就会被调用。要标准化 CLLocationManager 和 CMDeviceMotion 之间的不同时间坐标,您可以查看NSTimeInterval to unix timestamp
【讨论】: