Подписка Google Fit - PullRequest
       35

Подписка Google Fit

0 голосов
/ 22 февраля 2019

1.Необходимо подписаться на конкретный тип данных и addDataType в fitnessoption.builder, если вы хотите получить конкретный тип данных, верно?

Например

FitnessOptions fitnessOptions =
    FitnessOptions.builder()
        .addDataType(DataType.TYPE_STEP_COUNT_DELTA)
        .addDataType(DataType.TYPE_CALORIES_EXPENDED)

и

Fitness.getRecordingClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .subscribe(DataType.TYPE_CALORIES_EXPENDED)

Однако я не могу добавить болееодна подписка в getRecordingClient.Мне нужно будет получить много разных типов данных.Есть ли способ подписать тип данных в одном блоке кода?Или что мне делать?

Вторая проблема заключается в том, что когда я делаю конструктор запросов на чтение, я собираю два разных типа данных в одну корзину, как это

Task<DataReadResponse> response = Fitness.getHistoryClient(this, GoogleSignIn.getLastSignedInAccount(this)) .readData(new DataReadRequest.Builder() .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) .aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA) .aggregate(DataType.TYPE_CALORIES_EXPENDED, DataType.AGGREGATE_CALORIES_EXPENDED)

В этом ведре должно быть 2 набора данных, верно?Можно ли как-то повторить оба набора данных одновременно, чтобы я мог распечатать их в одном цикле for (:)?

Как это

for (DataPoint dataPoint : bucket.getDataSet(DataType.TYPE_CALORIES_EXPENDED).getDataPoints()) {
                  //stepObject.setSteps(dataPoint.getValue(Field.FIELD_STEPS).asString());
                  //Log.i(TAG, "Steps" + dataPoint.getValue(Field.FIELD_STEPS).asInt());
                  //Log.i(TAG, "Distance" + dataPoint.getValue(Field.FIELD_DISTANCE).asFloat());
                  Log.i(TAG, "Calories: " + dataPoint.getValue(Field.FIELD_CALORIES).asFloat());
              }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...