我正在尝试检索已完成的所有锻炼的心率以及锻炼的开始和停止时间,并将所有值作为时间或数量项目返回到我的 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)
我想获取锻炼和锻炼开始/结束时间的心率数据。