在我的应用中,我想每天将两个数量的ActiveEnergyBurned和BasalEnergyBurned相加并显示出来。是否可以使用单个HKQuery执行此操作?或者我是否必须单独获取它们并将它们一起添加?
如果是这样,我如何加入两个查询的结果?任何帮助表示赞赏
var startDate = DateTime.Now.Date;
var endDate = startDate.AddDays(1);
var predicate = HKQuery.GetPredicateForSamples((NSDate)startDate,
(NSDate)endDate, HKQueryOptions.None);
HKStatisticsOptions sumOptions = HKStatisticsOptions.CumulativeSum;
HKStatisticsQuery sQuery = new HKStatisticsQuery(qType, predicate,
sumOptions, (hQuery, result, error) => {
HKQuantity sum = result.SumQuantity();
var date = result.EndDate;
var dateTime = DateHelperIOS.NSDateToDateTime(date);
double value = sum.GetDoubleValue(hkUnit);
});
HKHealthStore HStore = new HKHealthStore();
HStore.ExecuteQuery(sQuery);
答案 0 :(得分:1)
HealthKit查询(包括HKStatisticsQuery
)一次只能查询一种数量类型(*)。
您可以在后台并行执行多个查询。这可能比顺序执行查询更快。
(*)有一个例外,HKActivitySummary
,它返回多个值,但不是你想要的全部。