2016-07-27 3 views
0

Я получаю эту ошибку, пока создаю объект запроса на чтение DataReadRequest. Я попытался найти документацию, но это неясно. Вот мой код:java.lang.IllegalStateException: необходимо указать действующую стратегию bucketing при запросе агрегирования

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 метод агрегатов в зависимости от периода времени вы просите, но данные, которые вы» re-запрос не может быть агрегирован (что означает, чтобы добавить вместе образцы местоположения?). Фактически все методы bucketing ожидают совокупный тип данных, потому что bucketing подразумевает, что вы пытаетесь представить несколько точек данных в качестве одной точки данных.

Смежные вопросы