Я пытаюсь получить обновления движения устройства на iPhone или iPad в фоновом режиме, используя CMMotionManager
. Я просмотрел все предыдущие сообщения по этой теме и подумал, что у меня есть код, который будет работать. Мое приложение также использует фоновый звук, и это работает правильно на переднем плане и в фоновом режиме. В Info.plist
, у меня есть фоновое аудио и обновление местоположения фона.Обновление движений устройства в фоновом режиме
Для целей тестирования, я объявил "var motionManager = CMMotionManager()"
в AppDelegate, и включал в себя следующий код в didFinishLaunchingWithOptions
:
motionManager.deviceMotionUpdateInterval = 0.10
let queue = NSOperationQueue()
motionManager.startDeviceMotionUpdatesToQueue(queue, withHandler: {
data, error in
let accelerationVector = sqrt(pow(data!.userAcceleration.x, 2) + pow(data!.userAcceleration.y, 2) + pow(data!.userAcceleration.z, 2))
print("\(accelerationVector)")
})
Когда я запустить приложение на устройстве, код выполняет на переднем плане, как и ожидалось, но когда Я нажимаю кнопку «домой», я получаю еще 10 показаний, прежде чем он остановится. Когда я нажимаю значок приложения, показания начинаются снова. Я также поставил точки останова на код в обработчике и получил аналогичные результаты.
Что мне не хватает?