Невозможно прочитать пользовательские данные, сохраненные на сервере Google Fit.

Я успешно загрузил свои пользовательские данные на сервер Google Fit. используя следующий код.

        com.google.android.gms.common.api.Status insertStatus =
                Fitness.HistoryApi.insertData(mClient, dataSet)
                        .await(1, TimeUnit.MINUTES);
        if (!insertStatus.isSuccess()) {
            Log.i(TAG, "There was a problem inserting the dataset.");
            return null;
        }

        Log.i(TAG, "Data insert was successful!");

Я обнаружил, что также могу читать пользовательские значения данных в своем приложении, но не получаю их. Ниже приведен код для его получения.

 final  PendingResult<DataTypeResult> pendingResult = Fitness.ConfigApi.readDataType(
                        mClient, "com.fitnessapi.custom_data_type");


                pendingResult.setResultCallback(
                        new ResultCallback<DataTypeResult>() {
                            @Override
                            public void onResult(DataTypeResult dataTypeRes) {

                                DataSet dataSet = DataSet.create(dataSource);

                                List<DataPoint> points= dataSet.getDataPoints();

                                for(int i=0; i<points.size();i++)
                                {
                                   //Never getting values
                                }
                            }
                        });
            }

person Dhrupal    schedule 20.01.2015    source источник


Ответы (1)


Метод readDataType возвращает тип данных только по имени.

документы

После этого вам нужно установить переменную dataType для результатов для использования.

DataType dataTypeFromResult = dataTypeRes.getDataType();

Затем передайте его тому, что вам нужно.

DataReadRequest readRequest = new DataReadRequest.Builder()
            .read(dataTypeFromResult)
            .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
            .build();
person Lewis Rhine    schedule 21.01.2015
comment
Я пытался использовать совокупный параметр DataReadRequest readRequest = new DataReadRequest.Builder() .aggregate(dataSource, dataTypeFromResult) .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) .build(); - person Dhrupal; 21.01.2015
comment
@Dhrupal Не могли бы вы сообщить мне, как получить данные о подгонке в приложении для Android? - person Binod Singh; 30.01.2015
comment
@Binod: Не могли бы вы задать вопрос в другой теме? Я буду знать об этом. - person Dhrupal; 30.01.2015
comment
@Dhrupal stackoverflow.com/questions /28234525/ - person Binod Singh; 30.01.2015