我正在尝试通过 Apple HealthKit 中的 HKSampleQuery 获取 HKWorkout 样本。顺便说一句,我无法获得 Apple Watch 跟踪的 HKWorkout 的设备名称。
我可以获得几个 HKWorkout 示例数据并确认 sourceRevision 和 totalDistance 可用。但无法确认唯一的设备数据。它表明它有一个空值。
苹果在这方面错过了吗?
这是我的实验代码。
func getRunningWorkouts(completionHandler: @escaping (_ data:[AnyObject]?, _ response:Bool, _ error:Error?) -> Void) {
let predicateForRunning = HKQuery.predicateForWorkouts(with: .running)
let sortDescriptor = NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: false)
let sampleType = HKWorkoutType.workoutType()
let sampleQuery = HKSampleQuery(sampleType: sampleType, predicate: predicateForRunning, limit: HKObjectQueryNoLimit, sortDescriptors: [sortDescriptor]) { (query, resultsArray, error) in
if error != nil {
print("Get an error to extract running workout: \(error)")
return
}
if let samples = resultsArray as? [HKWorkout] {
for sample in samples {
print(sample.device?.name)
completionHandler(samples, true, nil)
}
}
}
}
healthStore.execute(sampleQuery)
}