Как получить данные о частоте сердечных сокращений из HealthKit для каждой тренировки - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь получить частоту сердечных сокращений для всех выполненных тренировок, а также время начала и окончания тренировки и вернуть все значения в виде единиц времени или количества в результатах JSON. Мне удалось получить все тренировки, выполнив запросы продолжительностью больше 0, но теперь я хотел бы получить эту дополнительную информацию.

        let workoutPredicate = HKQuery.predicateForWorkouts(with: .greaterThanOrEqualTo, duration: 1)

        let compound = NSCompoundPredicate(andPredicateWithSubpredicates:
            [workoutPredicate])

        let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierEndDate,
                                              ascending: true)

        let query = HKSampleQuery(
            sampleType: .workoutType(),
            predicate: compound,
            limit: 0,
            sortDescriptors: [sortDescriptor]) { query, samples, error in
                DispatchQueue.main.async {
                    guard let finalSamples = samples as? [HKWorkout] else {
                        result()
                        return
                    }
                    result(finalSamples.map { sample -> NSDictionary in
                        return ["duration" : sample.duration, "totalDistance": sample.totalDistance?.doubleValue(for: HKUnit.mile()) as Any, "totalEnergyBurned": sample.totalEnergyBurned?.doubleValue(for: HKUnit.kilocalorie()) as Any]
                    })
                }
        }
        HKHealthStore().execute(query)

Я хотел бы получить данные о частоте сердечных сокращений для тренировки и времени начала / окончания тренировки.

...