问题是我正在从我的应用程序向Apple Health发送“骑车”活动,我希望它显示为“室内骑车”,但是发送到Apple Health活动的所有活动都标记为“户外活动”,从我的代码中将其定义为“室内骑行”活动的任何属性?
我正在研究,但是只有一个活动可以定义Cycling,正如您在下面使用的代码所示: ExerciseWithActivityType:HKWorkoutActivityTypeCycling
这是我的活动在Apple Activity应用程序中的外观视图
- (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);
}
}];
}
答案 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)
这是在locationType
的{{1}}实例属性上设置的。