是否可以授权我的应用访问iWatch HealthKit数据?

时间:2019-04-08 10:04:31

标签: ios swift watchkit apple-watch health-kit

我有一个iOS应用程序,每当第三方设备(例如Fitbit,Mi Band 3等)更新HealthKit数据(心率)时,该应用程序都会读取该数据。当前,只要数据源是这些第三方健康设备,我就可以从HealthKit中以前台和后台方式读取这些数据。但是,当iWatch更新HealthKit时,我什么也看不到。

似乎我需要向我的iOS应用提供授权才能访问iWatch数据。列出了所有需要访问数据的应用程序。该列表当前为空,这意味着我的应用没有此访问权限。请参考所附图片。I want to add my app to this list

我已经为iOS应用实现了读取HealthKit的授权。我已经使用“功能”启用了HealthKit,并且还将“隐私”选项添加到了Info.pList中。 到目前为止,用于授权iOS读取HealthKit的代码如下:

let readDataTypes : Set = [HKObjectType.quantityType(forIdentifier: .heartRate)!]
        HKStore.requestAuthorization(toShare: nil, read: readDataTypes) { (success, error) in
            guard success else{
                print("error \(String(describing: error))")
                return
            }

我想向我的应用提供访问HeathKit中iWatch数据的授权。任何文档,链接和指导将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以这样请求许可:

import UIKit
import HealthKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func touchButton(_ sender: Any) {
        let healthKitStore = HKHealthStore()
        let healthData: Set = [
          HKObjectType.quantityTypeForIdentifier(HKQuantityTypeIdentifierHeartRate)!
        ]

        healthKitStore.requestAuthorizationToShareTypes(healthData, readTypes: healthData) { _, _ in }
    }
}

答案 1 :(得分:0)

我还没有专门处理您的问题,但是当授权后端Pryv在HealthKit中读取/写入数据时,我们一直在执行类似的操作。 您可以在此处找到与我们的HealthKit桥相关的代码:https://github.com/pryv/bridge-ios-healthkit 我们已经在一个示例应用程序中对其进行了测试,该应用程序允许用户在Pryv或Apple HealthKit中读取/写入数据并进行显示。 您可以在这里找到代码:https://github.com/pryv/app-ios-swift-example。 我们用于个人数据收集和同意管理的中间件是开源的,请随时使用它以及示例应用程序:https://github.com/pryv/open-pryv.io