我使用 Core Motion 的传感器融合来获取北向运动更新:
[motionManager startDeviceMotionUpdatesUsingReferenceFrame:CMAttitudeReferenceFrameXTrueNorthZVertical toQueue:motionQueue withHandler:motionHandler]
在极少数情况下,只能在选定的客户设备(运行 iOS 6.0.2 的 iPhone 4S)上重现,我在 MotionHandler 中收到此错误:
Error Domain=CMErrorDomain Code=102 "The operation couldn’t be completed. (CMErrorDomain error 102.)
另外,此后我似乎没有收到任何有效的 deviceMotion 更新。有人知道这个错误102是什么意思吗?我在文档中找不到任何内容。
正如克里希纳巴德拉(Krishnabhadra)正确指出的那样,这个错误代码意味着CMErrorTrueNorthNotAvailable
。不幸的是,描述(“真北在此设备上不可用。这通常表明该设备的位置尚不可用。”)不幸的是没有给出任何解决问题的提示,所以我想描述我的发现发生错误。
当使用 iOS 6.0+ 设备时,它会发生在一小部分(成千上万中的一小部分)上CMAttitudeReferenceFrameXTrueNorthZVertical
(CMAttitudeReferenceFrameXMagneticNorthZVertical
就可以了)。尽管有错误描述,核心位置仍可以正常工作。在受影响的设备上,该错误在 100% 的情况下都会被触发,并完全阻止 Core Motion 更新。-[CMMotionManager deviceMotion]
总是返回nil
.
重置 iOS 系统设置可以解决该问题。
我已登录雷达://12952327还有一些更多细节。
Update:如果在隐私/位置服务/系统服务部分禁用指南针校准,则会出现此错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)