以下は、今日のカロリーを取得するコードです。
Calendar date = new GregorianCalendar();
date.set(Calendar.HOUR_OF_DAY, 0);
date.set(Calendar.MINUTE, 0);
date.set(Calendar.SECOND, 0);
date.set(Calendar.MILLISECOND, 0);
long startTime = date.getTimeInMillis();
date.set(Calendar.HOUR_OF_DAY, 23);
date.set(Calendar.MINUTE, 59);
date.set(Calendar.SECOND, 59);
date.set(Calendar.MILLISECOND, 0);
long endTime = date.getTimeInMillis();
String calories;
DataReadRequest dataReadRequest = new DataReadRequest.Builder().read(DataType.TYPE_CALORIES_EXPENDED).
setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS).build();
Fitness.HistoryApi.readData(App.gClient, dataReadRequest).setResultCallback(
new ResolvingResultCallbacks<DataReadResult>(this.getActivity(), 0) {
@Override
public void onSuccess(DataReadResult dataReadResult) {
String calories;
DataSet dataSet = dataReadResult.getDataSet(DataType.TYPE_CALORIES_EXPENDED);
if (dataSet != null) {
List<DataPoint> dataPoint = dataSet.getDataPoints();
if (!dataPoint.isEmpty()) {
calories = dataPoint.get(0).getValue(Field.FIELD_CALORIES).toString();
txtCalories.setText(calories);
}
}
}
@Override
public void onUnresolvableFailure(Status status) {
}
});
startDate=1 に設定すると、カロリー数を確認できます。ただし、今日のカウントはありません。開始時刻は今日の深夜 12 時で、終了時刻は今日の午後 11 時 59 分です。