The problem is I am sending a "Cycling" activity from my app to Apple Health and I want it to appear as "Indoor Cycling" but all the activities send to apple health activity are mark as "Outdoor activity", there is any property to define them as "Indoor Cycling" activities from my code?
I research but there is only one activity to define the Cycling as you see I my code below I used: workoutWithActivityType:HKWorkoutActivityTypeCycling
here is a view of how my activities look in Apple Activity app
- (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);
}
}];
}
Try adding the metadata indoor workout key with a value of YES to the metadata dictionary when instantiating your workout:
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