watchOS 5:HKLiveWorkoutBuilder、HKWorkoutRouteBuilder 和锻炼距离

问题描述 投票:0回答:2

我正在使用

HKLiveWorkoutBuilder
HKWorkoutRouteBuilder
在 Apple Watch 上跟踪锻炼情况。

打电话时:

[workoutBuilder finishWorkoutWithCompletion:^(HKWorkout * _Nullable workout, NSError * _Nullable error) {

}];

返回的

workout
对象不包含用户行驶的距离:

(lldb) po workout.totalDistance
nil

但是路线已正确保存。

鉴于

.totalDistance
是只读的,我应该如何在watchOS 5中设置锻炼距离?

enter image description here

enter image description here

watchkit healthkit watchos-5
2个回答
3
投票

这里的答案分为两部分。

要使其适用于步行或跑步,您可以使用以下代码:

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)

})

您可以适应游泳和滑雪。

目前无法使用锻炼生成器来获取其他类型的户外活动(例如划船)的距离。

--

雷达/反馈详细信息(如果您想复制和粘贴)

反馈编号:FB5714600

标题: 支持距离追踪,更多运动类型

身体:

当前实时锻炼生成器仅支持以下类型的跟踪距离: - 步行或跑步的距离 - 滑雪 - 游泳

我看到两个选择。最好的办法是允许这样的事情:

workoutBuilder?.dataSource?.enableCollection(for: HKQuantityType.quantityType(forIdentifier: .distancePaddling)!, predicate: nil)

另一种选择是允许锻炼可变,以便可以追溯添加距离。

如果需要,我很乐意提供进一步的意见。我们的用户喜欢 Apple Watch,但令他们沮丧的是,他们无法在“健康”中存储划桨锻炼的距离。


0
投票

@Lewis42 我意识到这个线程很旧,但我想知道你是否知道如何在曲棍球锻炼中添加距离(和 GPS 数据)。

© www.soinside.com 2019 - 2024. All rights reserved.