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版本新增功能揭秘!

React Native 开发中 Apple Health Kit 的虚假步骤数据

FAQ申请Health Kit权限的常见问题及解答

FAQ申请Health Kit权限的常见问题及解答

我如何在 iOS 的 Health kit 中写血型