0

以下は、今日のカロリーを取得するコードです。

    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 分です。

4

1 に答える 1

0

今日の日は完全ではありません。したがって、終了時間がエラーになると思います。代わりに、終了時間を次のように設定する必要がありますMath.min(System.getCurrentMillis(), date.getTimeInMillis();)

于 2016-08-08T15:25:02.947 に答える