我已成功将自定义数据上传到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
}
}
});
}
答案 0 :(得分:2)
readDataType方法只会按名称返回dataType。
一旦完成,您必须将dataType变量设置为要使用的结果。
DataType dataTypeFromResult = dataTypeRes.getDataType();
然后将它传递给你需要的东西。
DataReadRequest readRequest = new DataReadRequest.Builder()
.read(dataTypeFromResult)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.build();