watchOS 5:HKLiveWorkoutBuilder、HKWorkoutRouteBuilder 和锻炼距离
watchOS 5: HKLiveWorkoutBuilder, HKWorkoutRouteBuilder and Workout Distance
我正在使用 HKLiveWorkoutBuilder
和 HKWorkoutRouteBuilder
在 Apple Watch 上跟踪锻炼。
调用时:
[workoutBuilder finishWorkoutWithCompletion:^(HKWorkout * _Nullable workout, NSError * _Nullable error) {
}];
返回的workout
对象不包含用户走过的距离:
(lldb) po workout.totalDistance
nil
但是路线保存正确。
鉴于.totalDistance
是只读的,我应该如何在watchOS 5中设置锻炼的距离?
这里的答案分为两部分。
要使其适用于 步行或 运行,您可以使用以下代码:
workoutBuilder?.beginCollection(withStart: Date(), completion: { (success, error) in
guard success == true else {
#warning ("deal with failure")
return
}
workoutBuilder?.dataSource = HKLiveWorkoutDataSource(healthStore:self.healthStore, workoutConfiguration: self.workoutConfig)
// this is the important bit
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning)!, predicate: nil)
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .heartRate)!, predicate: nil)
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned)!, predicate: nil)
})
您可以将其用于游泳和滑雪。
目前无法使用 workout builder 获取其他类型户外运动的距离 activity,例如划船。
--
Radar/Feedback 是否要复制和粘贴的详细信息
反馈编号: FB5714600
标题:支持更多运动类型的距离追踪
Body:
目前 live workout builder 仅包括对以下类型的跟踪距离的支持:
- 步行或 运行 距离
- 滑雪
- 游泳
我看到两个选项。最好是允许这样的事情:
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .distancePaddling)!, predicate: nil)
另一种选择是允许锻炼可变,以便可以追溯添加距离。
如果需要,我很乐意提供进一步的意见。我们的用户喜欢 Apple Watch,但令他们感到沮丧的是,他们无法在“健康”中存储划桨锻炼的距离。
我正在使用 HKLiveWorkoutBuilder
和 HKWorkoutRouteBuilder
在 Apple Watch 上跟踪锻炼。
调用时:
[workoutBuilder finishWorkoutWithCompletion:^(HKWorkout * _Nullable workout, NSError * _Nullable error) {
}];
返回的workout
对象不包含用户走过的距离:
(lldb) po workout.totalDistance
nil
但是路线保存正确。
鉴于.totalDistance
是只读的,我应该如何在watchOS 5中设置锻炼的距离?
这里的答案分为两部分。
要使其适用于 步行或 运行,您可以使用以下代码:
workoutBuilder?.beginCollection(withStart: Date(), completion: { (success, error) in
guard success == true else {
#warning ("deal with failure")
return
}
workoutBuilder?.dataSource = HKLiveWorkoutDataSource(healthStore:self.healthStore, workoutConfiguration: self.workoutConfig)
// this is the important bit
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .distanceWalkingRunning)!, predicate: nil)
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .heartRate)!, predicate: nil)
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .activeEnergyBurned)!, predicate: nil)
})
您可以将其用于游泳和滑雪。
目前无法使用 workout builder 获取其他类型户外运动的距离 activity,例如划船。
--
Radar/Feedback 是否要复制和粘贴的详细信息
反馈编号: FB5714600
标题:支持更多运动类型的距离追踪
Body:
目前 live workout builder 仅包括对以下类型的跟踪距离的支持: - 步行或 运行 距离 - 滑雪 - 游泳
我看到两个选项。最好是允许这样的事情:
workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .distancePaddling)!, predicate: nil)
另一种选择是允许锻炼可变,以便可以追溯添加距离。
如果需要,我很乐意提供进一步的意见。我们的用户喜欢 Apple Watch,但令他们感到沮丧的是,他们无法在“健康”中存储划桨锻炼的距离。