Próbuje stworzyć program który będzie pobierał dane z akcelerometru zegarka, wiadomo jak zegarek się uśpi wszystkie timery się zatrzymują w tym CMMotionManager.
Jednak znalazłem gdzieś w sieci że dzięki HKWorkoutSession aplikacja działa w tle. Kilka razy mi się to udało, ale nie zawsze nie wiem dlaczego tak się dzieje (skąd takie zachowanie).
Mój kod:
Uruchamianie HealthKit
let workoutSession = HKWorkoutSession(activityType: .Golf, locationType: .Outdoor) // gdzie mogę znaleźć informacje odnośnie korzystania z HKWorkoutActivityTypeGolf? let healthStore:HKHealthStore = HKHealthStore() self.workoutSession.delegate = self self.healthStore.startWorkoutSession(self.workoutSession)
W innym miejscu uruchamiam akcelerometr
let motinoManager:CMMotionManager = CMMotionManager() func runAccelerometre()->Void{ if isAccelerometreRun(){ return} motinoManager.accelerometerUpdateInterval = 1 motinoManager.startAccelerometerUpdatesToQueue(NSOperationQueue.mainQueue()) { (accelerometreData:CMAccelerometerData?, error:NSError?) -> Void in if CMSensorRecorder.isAccelerometerRecordingAvailable() { if let acceleromet = accelerometreData{ let accSample = AccelerometerSample() accSample.x = acceleromet.acceleration.x accSample.y = acceleromet.acceleration.y accSample.z = acceleromet.acceleration.z accSample.time = NSDate() } } } }