Health Kit 按设备类型分隔当天的运动步数
Posted
技术标签:
【中文标题】Health Kit 按设备类型分隔当天的运动步数【英文标题】:Health Kit steps by movement for the day separated by device type 【发布时间】:2021-09-07 06:57:18 【问题描述】:如何在 Swift 中获取如下图所示的数据,我正在计算每天的步数和每小时的步数,但不知道如何获得如下所示的数据。我想按设备(手表、电话)步数而不是按时间间隔获取每个运动组的步数?
【问题讨论】:
【参考方案1】:我使用了 HKSampleQuery
func getStepCountForTodaySegmentedByMovement( complete: @escaping ([HKCumulativeQuantitySample]) -> () )
let healthStore = HKHealthStore()
guard let stepsQuantityType = HKQuantityType.quantityType(forIdentifier: .stepCount) else
fatalError("*** Unable to create a step count type ***")
let predicate = HKQuery.predicateForSamples(withStart: startOfDay, end: .distantFuture, options: .strictEndDate)
let query = HKSampleQuery(sampleType: stepsQuantityType,
predicate: predicate,
limit: HKObjectQueryNoLimit,
sortDescriptors: [NSSortDescriptor(key: HKSampleSortIdentifierEndDate, ascending: true)])
(query, results, error) in
complete(results as? [HKCumulativeQuantitySample] ?? [])
healthStore.execute(query)
【讨论】:
【参考方案2】:如果您想要像 Health 应用程序显示的单个样本,则可以使用样本查询。相关点,如果有用,还可以通过HKStatisticsOptions separateBySource获取按源分隔的统计信息
【讨论】:
以上是关于Health Kit 按设备类型分隔当天的运动步数的主要内容,如果未能解决你的问题,请参考以下文章
华为运动健康服务Health Kit 6.9.0版本新增功能揭秘!
华为运动健康服务Health Kit 6.9.0版本新增功能揭秘!