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 数据详细信息的主要内容,如果未能解决你的问题,请参考以下文章