2016-09-17 3 views
1

私のアプリでは、1日にActiveEnergyBurnedとBasalEnergyBurnedの2つの数量を合計して表示したいと考えています。単一のHKQueryを使用してこれを行うことは可能ですか?または、それらを別々に取り出して一緒に追加する必要がありますか?HealthKit:クエリで2つの数量を合計することはできますか?

もしそうなら、どのように2つのクエリの結果に参加できますか?ヘルプが理解される任意HKStatisticsQuery含む

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

こんにちはHeisenBerg、それに解決策はありますか? – seggy

+0

私は最初のクエリの結果ハンドラの中で2番目のクエリを呼び出すことを終了しました。私は当然の解決策ではありませんでしたが、当時私が必要としていた解決策でした。よりよい解決策が見つかったら教えてください。 – HeisenBerg

+0

確かに私はこれのためのより良い解決策を探しています。 – seggy

答えて

1

HealthKitクエリーは、時間(*)でのみ数量タイプを照会することができます。

複数のクエリをバックグラウンドで並列に実行できます。これはおそらく、クエリを順次実行するよりも高速です。

(*)いくつかの値が返されるが、すべてではないという例外が1つあります(HKActivitySummary)。

+0

ありがとうございました。しかし、2つのクエリが並列実行されているため、2つのクエリの結果を合計することは可能ですか?私が考えることができるのは、最初のクエリの補完ハンドラの中で2番目のクエリを実行することですが、それは私のニーズに合っていません – HeisenBerg

+0

これまでのところ、これらのアプローチでは解決できないニーズについては言及していません。それで満足していないと思いますか? –

関連する問題