从HealthKit获取设备

时间:2018-03-30 14:32:19

标签: ios swift health-kit

Health应用程序在“来源”选项卡中显示设备。我只想获得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 个答案:

答案 0 :(得分:0)

我找到了解决方案。我将查询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()
    }