如何使用CYCHealthKitHandler

时间:2019-06-10 21:54:43

标签: ios objective-c apple-watch health-kit

问题是我正在从我的应用程序向Apple Health发送“骑车”活动,我希望它显示为“室内骑车”,但是发送到Apple Health活动的所有活动都标记为“户外活动”,从我的代码中将其定义为“室内骑行”活动的任何属性?

我正在研究,但是只有一个活动可以定义Cycling,正如您在下面使用的代码所示: ExerciseWithActivityType:HKWorkoutActivityTypeCycling

这是我的活动在Apple Activity应用程序中的外观视图 data

- (void)saveWorkoutFromStartDate:(NSDate *)startDate endDate:(NSDate *)endDate duration:(double)duration miles:(double)miles kilocalories:(double)calories completion:(void (^)(BOOL success, NSError *error))completion {

    HKQuantity *milesQuantity = [HKQuantity quantityWithUnit:[HKUnit mileUnit] doubleValue:miles];
    HKQuantity *caloriesQuantity = [HKQuantity quantityWithUnit:[HKUnit kilocalorieUnit] doubleValue:calories];

    HKWorkout *workout = [HKWorkout workoutWithActivityType:HKWorkoutActivityTypeCycling startDate:startDate endDate:endDate duration:duration totalEnergyBurned:caloriesQuantity totalDistance:milesQuantity metadata:nil];
    [self.healthStore saveObject:workout withCompletion:^(BOOL success, NSError *error) {

        if (success) {
            completion(success, nil);
        }
        else {
            DLog(@"%@", error);
            completion(success, error);
        }
    }];
}

2 个答案:

答案 0 :(得分:1)

在实例化锻炼时,尝试将值为YES的元数据室内锻炼键添加到元数据字典中:

HKWorkout *workout = [HKWorkout workoutWithActivityType:HKWorkoutActivityTypeCycling startDate:startDate endDate:endDate duration:duration totalEnergyBurned:caloriesQuantity totalDistance:milesQuantity metadata:@{HKMetadataKeyIndoorWorkout : @(YES)}];

https://developer.apple.com/documentation/healthkit/hkmetadatakeyindoorworkout?language=objc

答案 1 :(得分:1)