Ich versuche, Gerätbewegungsaktualisierungen auf einem iPhone oder iPad im Hintergrund zu erhalten, CMMotionManager
verwendend. Ich habe alle früheren Beiträge zu diesem Thema gelesen und dachte, dass ich Code hätte, der funktionieren würde. Meine App verwendet auch Hintergrund-Audio, und das funktioniert einwandfrei im Vordergrund und Hintergrund. In Info.plist
habe ich Hintergrund-Audio-und Hintergrund-Standortaktualisierungen aktiviert.Gerätebewegungsaktualisierungen im Hintergrund
Zu Testzwecken habe ich "var motionManager = CMMotionManager()"
in AppDelegate erklärt, und enthalten Sie den folgenden Code in 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)")
})
Als ich die App auf meinem Gerät ausgeführt werden, da der Code ausführt, im Vordergrund erwartet, aber wenn Ich drücke den Home-Knopf, ich bekomme ungefähr 10 weitere Lesungen, bevor es aufhört. Wenn ich auf das App-Symbol tippe, beginnen die Messungen erneut. Ich habe auch Breakpoints auf den Code im Handler gelegt und ähnliche Ergebnisse erhalten.
Was fehlt mir?