Как я определяю свою деятельность как "Велоспорт в помещении", используя CYCHealthKitHandler - PullRequest
0 голосов
/ 11 июня 2019

Проблема в том, что я отправляю "Велоспорт" из моего приложения в приложение Apple Health, и я хочу, чтобы оно отображалось как "Внутренний цикл", но все действия, отправляемые в группу Apple по здоровью, помечаются как "Активность на открытом воздухе".какое-либо свойство, чтобы определить их как действия "Indoor Cycling" из моего кода?

Я исследую, но есть только одно действие для определения Cycling, как вы видите, мой код ниже, который я использовал: workoutWithActivityType: 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 ]

1 голос
/ 11 июня 2019

Это устанавливается для свойства экземпляра locationType вашего HKWorkoutConfiguration.

https://developer.apple.com/documentation/healthkit/hkworkoutconfiguration/1649491-locationtype?changes=_4&language=objc

1 голос
/ 11 июня 2019

Попробуйте добавить ключ метаданных для внутренней тренировки со значением 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

...