如何在我的 iOS 应用中显示 HealthKit 数据?

Posted

技术标签:

【中文标题】如何在我的 iOS 应用中显示 HealthKit 数据?【英文标题】:How would I display HealthKit Data in my iOS app? 【发布时间】:2015-10-15 03:41:01 【问题描述】:

我正在搞乱 HealthKit,我只想制作一个非常简单的应用程序来读取来自 HealthKit 的 ActiveCaloriesBurned 的数量并将其打印到 ViewController 上。我不确定我是否在我的 HealthManager 类中正确访问数据,我也不确定如何正确调用 healthKit 数据以在我的 viewController 中打印。

我知道我必须创建一个类来验证用户是否允许应用访问 healthKit 数据。所以首先我创建了一个名为 HealthManager 的类来解决我的第一个验证问题,我确信它可以正常工作:

class HealthManager 

    let storage = HKHealthStore()

    init()
    
        checkAuthorization()
    

    func checkAuthorization() -> Bool 
        var isEnabled = true

        if HKHealthStore.isHealthDataAvailable() 

            // Explicitly requests calorie data
            let calories = NSSet(object: HKQuantityType.quantityTypeForIdentifier(HKQuantityTypeIdentifierActiveEnergyBurned)!)

            // Requests authorization for calorie data
            storage.requestAuthorizationToShareTypes(nil, readTypes: calories as? Set<HKObjectType>)  (success, error) -> Void in
                isEnabled = success
            
        

        else 
            isEnabled = false
        

        return isEnabled

    


但我不知道下一步该做什么。我在哪里以及如何阅读当前课程中的 ActiveCaloriesBurned?我将在哪里将值作为字符串返回,以及如何将所有这些信息传递到我的 viewController 中?

感谢任何帮助!

【问题讨论】:

【参考方案1】:

您可以使用 Health Kit 访问以下信息。 - 出生日期 - 血型 - 生物性 - 身体质量 - 高度 - 锻炼类型

我认为最好创建新的独立“HelathKitHelper”单例类并在该类中编写所有逻辑。

通过它,您可以使用不同的 2 个控制器类调用相同的代码。

一些教程链接http://natashatherobot.com/healthkit-getting-fitness-data/

http://www.raywenderlich.com/86336/ios-8-healthkit-swift-getting-started

希望对您有所帮助!

【讨论】:

谢谢,我一定会试试的!我如何在我的 viewController 中调用这个单例类来让它打印到屏幕上? 您可以为数据创建模型类,并将所有必需的健康相关信息存储在模型类中。您可以创建一些方法,例如 - (ModelClass*) getData;在单例类中并从视图控制器调用此方法。【参考方案2】:

我们在为个人数据中间件 Pryv 构建的 HealthKit 桥中实现了类似的功能。 我们已经在一个示例应用程序中对其进行了测试,它允许用户授权其他应用程序读取/写入数据到 Apple HealthKit 并显示它。 你可以在这里找到代码:https://github.com/pryv/app-ios-swift-example。 我们用于个人数据收集和同意管理的中间件是开源的,因此请随意使用它以及我们的示例应用程序:https://github.com/pryv/open-pryv.io

【讨论】:

以上是关于如何在我的 iOS 应用中显示 HealthKit 数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 在 iOS 中显示从 HealthKit 中检索到的 HKDocumentSample?

在我的应用程序中存储 HealthKit 数据

如何通过 healthkit 使用 Apple Watch 心率更新 iOS 应用程序? (HealthKit 同步)

从 healthKit 中提取心率

从 healthKit 中提取心率

如何在我的 iOS 应用程序中显示密码视图?