我正在尝试检索所有已完成锻炼的心率,还尝试开始和停止锻炼时间,并在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)
我想获取锻炼的心率数据以及锻炼的开始/结束时间。
答案 0 :(得分:0)
每次锻炼的开始时间和结束日期晚一些,但应该很容易:
print("started @: \(sample.startDate), ended @: \(sample.endDate)")
您每次锻炼都能获得心率(最小/最大/平均)吗?我也对此很感兴趣,而且似乎无法弄清楚这是否可行?