如何将总距离添加到 HKLiveWorkouts

How to add total distance to HKLiveWorkouts

我正在使用新的 HKLiveWorkoutBuilder 创建 Healthkit 锻炼。一切都很好,除了我不知道如何给锻炼一个总距离。我添加了有效的距离样本(尽管它在健康中显示了两次单位,例如 200 mi mi)但是当稍后查询锻炼时它没有总距离,甚至在锻炼构建器 finishWorkout() 函数中锻炼也没有总距离。有谁知道如何在 Live Workouts 上获得总距离?

看起来 HKLiveWorkoutBuilder 并没有为您创建 HKWorkout,而只是在锻炼过程中为您提供增量数据。

由于 HKWorkout 是不可变的,您应该在收集完所有数据后才创建一个。然后一旦你想保存锻炼,你可以从健康商店重新查询所有相关数据,或者使用实时收集的样本。

使用 HKQuantityTypeIdentifier 作为 "distance traveled" 例如: https://developer.apple.com/documentation/healthkit/hkquantitytypeidentifier/1615230-distancewalkingrunning 在初始化 HKWorkout 之前查询值。

似乎在 HKWorkoutConfiguration() 上设置 activity 类型就是答案。我使用 "other" 作为 activity 类型,无论出于何种原因,生成的 HKWorkout 没有总距离。我将 activity 类型切换为步行,效果很好。