2016-07-27 57 views
0

我在创建读取请求对象DataReadRequest类时遇到此错误。我试图寻找文件,但目前还不清楚。这里是我的代码:java.lang.IllegalStateException:在请求聚合时必须指定有效的桶策略

DataReadRequest readRequest = new DataReadRequest.Builder() 
      .read(DataType.TYPE_LOCATION_SAMPLE) 
      .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) 
      .bucketByTime(1, TimeUnit.HOURS) 
      .build(); 

的错误是在bucketByTime方法,我不知道如何着手。

+0

您的[错误](https://developer.android.com/reference/java/lang/IllegalStateException.html)指出您在提交响应后正在尝试写入输出流。 *“表示在非法或不适当的时间调用某个方法,换句话说,Java环境或Java应用程序对于请求的操作未处于适当的状态。”*要解决此问题,请尽量在返回语句后包含return语句发送重定向或转发语句。请查看[教程](http://quabr.com/37820404/google-fit-api-getting-calories-burned-per-activity)。 – abielita

回答

3

我之前有过这个错误。简短的回答是注释掉线

.bucketByTime(1, TimeUnit.HOURS) 

之所以这不起作用您的要求是根据时间你问周期的bucketByTime方法聚集的数据,但这些数据你”重新请求无法汇总(将位置样本添加到一起意味着什么)。实际上,所有分段方法都需要聚合数据类型,因为分段存在意味着您想要将多个数据点表示为一个数据点。