Health Kit 数据详细信息

Posted

技术标签:

【中文标题】Health Kit 数据详细信息【英文标题】:Health Kit data deatils 【发布时间】:2021-07-25 16:03:50 【问题描述】:

如何获取锻炼的详细信息,例如特定锻炼的开始和结束日期时间。

我正在使用以下方法完成所有锻炼,我的目标是在锻炼期间获得心率。

  var q = new HKSampleQuery(HKObjectType.GetWorkoutType(), p, 0, new NSSortDescriptor[]  ,
            new HKSampleQueryResultsHandler((HKSampleQuery query2, HKSample[] results, NSError error2) =>
            
               
             
            ));

【问题讨论】:

【参考方案1】:

您可以设置特定类型(HKQuantityType)来查询心率。

HKQuantityType heart = HKQuantityType.Create(HKQuantityTypeIdentifier.HeartRate);

var q = new HKSampleQuery(heart, p, 0, new NSSortDescriptor[]  ,
   new HKSampleQueryResultsHandler((HKSampleQuery query2, HKSample[] results, NSError error2) =>
   


    ));

请参阅How to read heart rate from ios HealthKit app using Swift?。

【讨论】:

我需要首先获取给定持续时间内的所有锻炼,我已经拥有了。现在我想在锻炼期间获取心率。所以我发布的查询给了我持续时间而不是开始和结束时间,所以我不能只得到那个特定时期的心率。 您可以在predicate 参数中指定开始和结束时间,在我提供的链接中查看答案。 通过我的查询,我在谓词中传递了开始和结束日期,并且查询返回了锻炼列表,但它返回了持续时间以及锻炼名称而不是开始和结束时间。我需要开始和结束时间,以便在下午 1 点到 2 点之间获取心率。 效果很好,我也得到了心率。但我想了解在收集心率时 HKSampleQuery 和 HKStatisticsCollectionQuery 有什么区别。我想在锻炼期间每隔 2 分钟收集一次心脏说,我只能使用 HKStatisticsCollectionQuery 来做。但不知何故,HKStatisticsCollectionQuery 没有返回值,但是当我在健康工具包中手动添加心率时,它确实返回了值 查看文档:developer.apple.com/documentation/healthkit/… 和 developer.apple.com/documentation/healthkit/…,我认为解释得很好。

以上是关于Health Kit 数据详细信息的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 的 Health Kit 应用中显示月经详细信息

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

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

查找扫描条形码详细信息的扫描仪 sdk

spring boot actuator 如何显示详细信息

以编程方式获取/刷新 Health Kit 数据?