【发布时间】:2018-02-19 06:20:43
【问题描述】:
我的应用在后台报告并记录位置、高度、旋转和加速度计数据 (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 }
我找不到有关 Motion 背景模式更改的任何信息,但似乎必须有一种方法,否则 RunKeeper,Strava 会中断。有人可以在 IOS11 发布之前帮我重新开始工作吗?
谢谢!
【问题讨论】:
-
我自己也有类似的问题。您是否使用 CoreLocation 后台模式来保持应用程序在动态更新时处于活动状态?
-
@doovers 正确。 CoreLocation 正在使用中,并且之前已支持运动所需的背景模式。令人沮丧的是,WatchKit 有一个锻炼模式,允许在后台访问运动。
-
似乎我们并不孤单......检查这个thread。您在哪些设备上看到问题?我试过 6 和 7,只有 7 不起作用。
-
我已经看了几天这个帖子了。我有一个从周日开始开放的 Apple 支持请求。如果有事我会回帖。请也这样做。
-
大家好。我昨天收到一封来自 Apple 的电子邮件,说这个问题可能会在 11.1 Beta 2 中得到解决。昨晚安装了它,应用程序看起来不错。我在使用 Xcode Beta 时遇到了不同的编译问题,还无法在控制台中验证内容,但请查看 11.1 Beta 2。
标签: core-motion ios11 devicemotion