HealthKit:可以通过Query对两个数量求和吗?

时间:2016-09-17 06:47:43

标签: ios health-kit

在我的应用中,我想每天将两个数量的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);

1 个答案:

答案 0 :(得分:1)

HealthKit查询(包括HKStatisticsQuery)一次只能查询一种数量类型(*)。

您可以在后台并行执行多个查询。这可能比顺序执行查询更快。

(*)有一个例外,HKActivitySummary,它返回多个值,但不是你想要的全部。