从 HealthKit 获取设备

Posted

技术标签:

【中文标题】从 HealthKit 获取设备【英文标题】:Get devices from HealthKit 【发布时间】:2018-03-30 14:32:18 【问题描述】:

Health 应用在 Sources 选项卡中显示设备。我只是想获得 Health 应用程序用来确定来源类型的相同信息。

HKSource 似乎没有提供。

有没有其他方法可以识别哪个来源是 iPhone 或 Apple Watch?

    let sampleType = HKObjectType.quantityType(forIdentifier: HKQuantityTypeIdentifier.stepCount)

    let query = HKSourceQuery(sampleType: sampleType!, samplePredicate: nil) 
        query, sources, error in


    
    HKHealthStore().execute(query)

【问题讨论】:

【参考方案1】:

我找到了解决方案。我将查询 HKSample 中的HKSample 和属性HKDevice 包含有关设备的信息。

    let group = DispatchGroup()
    for source in sources 
        let sourceModel = SourceHealthKitModel(source: source)
        group.enter()
        let type = HKQuantityType.quantityType(forIdentifier: .stepCount)
        let predicate = HKQuery.predicateForObjects(from: source)
        let query = HKSampleQuery(sampleType: type!, predicate: predicate, limit: 1, sortDescriptors: nil)  (query, results, error) in
            if let sample = results?.first 
                sourceModel.sample = sample
                self?.dataSources.append(sourceModel)
            
            group.leave()
        
        HKHealthStore().execute(query)
    
    group.notify(queue: .main) 
        self?.tableView.reloadData()
    

【讨论】:

以上是关于从 HealthKit 获取设备的主要内容,如果未能解决你的问题,请参考以下文章

iOS 获取结合多个设备的 healthkit 数据

iOS 获取结合多个设备的 healthkit 数据

如何获取以前日期的 HealthKit 总步数

如何获取以前日期的 HealthKit 总步数

从 HealthKit 获取一系列血糖记录

iOS Healthkit 使用探索分析 🌛