如何使用 HealthKit 从 iHealth 获取元数据?

Posted

技术标签:

【中文标题】如何使用 HealthKit 从 iHealth 获取元数据?【英文标题】:How to get meta data from iHealth using HealthKit? 【发布时间】:2014-12-10 14:12:47 【问题描述】:

问题

我们正在将 Healthkit 集成到我们现有的 ios 应用中。我们已经设法从 Healthkit 中获取所有主要数据,例如跑步、体重等,但我们遇到的困难是在获取 元数据 时,比如用户记录该活动时,它是否会自动记录或者手动,数据的来源是什么等。

请看下图。这就是我们要获取的数据。

我们使用了 Objective-C

代码

- (void)updateUsers_BodyMassIndex


    // for getting body mass index.
    HKQuantityType *Distance_BodyMassIndex = [HKQuantityType quantityTypeForIdentifier:HKQuantityTypeIdentifierBodyMassIndex];

    NSLog(@"%@",Distance_BodyMassIndex);

       // call query method for getting BodyMassIndex data
    [self.healthStore aapl_mostRecentQuantitySampleOfType:Distance_BodyMassIndex predicate:nil completion:^(HKQuantity *mostRecentQuantity, NSError *error)
    
        if (!mostRecentQuantity)
        
            NSLog(@"Either an error occured fetching the user's height information or none has been stored yet. In your app, try to handle this gracefully.");

            dispatch_async(dispatch_get_main_queue(), ^
                NSLog(@"not available BodyMassIndex");
            );
        
        else
        
            // to get was user entered or not
            HKQuantityType *BodyMassIndexuserentered = [HKQuantityType quantityTypeForIdentifier:HKMetadataKeyWasUserEntered];
// getting unit for body mass index.
            HKUnit *DISTANCE_BodyMassIndexUnit = [HKUnit countUnit];
            double BodyMassIndex = [mostRecentQuantity doubleValueForUnit:DISTANCE_BodyMassIndexUnit];

            dispatch_async(dispatch_get_main_queue(), ^

                NSLog(@"available body mass index %@",[NSNumberFormatter localizedStringFromNumber:@(BodyMassIndex) numberStyle:NSNumberFormatterNoStyle]);

            );
        
    ];

图片

【问题讨论】:

【参考方案1】:

这里是获取 wasUserEntered 键值的代码

BOOL wasUserEntered = [[mostRecentQuantity.metadata objectForKey:HKMetadataKeyWasUserEntered] boolValue];

【讨论】:

以上是关于如何使用 HealthKit 从 iHealth 获取元数据?的主要内容,如果未能解决你的问题,请参考以下文章

iHealth基于Docker的DevOps CI/CD实践

iHealth基于Docker的DevOps CI/CD实践

如何使用 Xamarin Forms 从 HealthKit 读取 ECG 数据

如何使用 Xamarin Forms 从 HealthKit 读取 ECG 数据

如何从 healthkit 框架中读取上次更新的洗手数据?

如何从 healthkit 框架中读取上次更新的洗手数据?