我的应用程序在后台报告和记录位置、海拔、旋转和加速度计数据(DeviceMotion)。在iOS 10.3.3上运作良好。但是,在iOS 11上,当设备锁定时,我不再能够访问动态数据。尽管如此,海拔数据和位置数据仍然正在输出到控制台。
iOS 11有什么改变阻止我访问动态数据,或者我尝试以Apple现在阻止的方式(例如OperationQueue.main)进行访问吗?
以下是我如何启动动态更新的方式。如果手机未锁定,则一切正常。如果我锁定手机,则不再更新。
let motionManager = self.motionManager
if motionManager.isDeviceMotionAvailable {
motionUpdateInterval = 0.15
motionManager.deviceMotionUpdateInterval = motionUpdateInterval
motionManager.startDeviceMotionUpdates(using: .xArbitraryZVertical, to: OperationQueue.main) {deviceMotion, error in
guard let deviceMotion = deviceMotion else { return }
我找不到任何有关动态背景模式更改的信息,但似乎必须有一种方法,否则 RunKeeper、Strava 将会崩溃。在 iOS11 发布之前,有人能帮我让这个正常工作吗?
谢谢!