无法读取google fit服务器保存的自定义数据

时间:2015-01-20 09:44:37

标签: android custom-data-type google-fit google-fit-sdk

我已成功将自定义数据上传到Google健身服务器。使用以下代码。

        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
                                }
                            }
                        });
            }

1 个答案:

答案 0 :(得分:2)

readDataType方法只会按名称返回dataType。

docs

一旦完成,您必须将dataType变量设置为要使用的结果。

DataType dataTypeFromResult = dataTypeRes.getDataType();

然后将它传递给你需要的东西。

DataReadRequest readRequest = new DataReadRequest.Builder()
            .read(dataTypeFromResult)
            .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
            .build();