Jim*_*ers 5 java android date google-fit
我正在尝试通过对 Google 健身历史 API 的单个请求来获取过去两周的每日步数总计。但数据并没有根据用户自己的时区按天对数据进行分桶。至少——这是我的假设。以下是我得到的输出与 google fit 应用程序中报告的步数总数的比较:
Field (steps) Key (2015-08-05) Value(5028) | FitApp(4448)
Field (steps) Key (2015-08-06) Value(5158) | FitApp(2973)
Field (steps) Key (2015-08-07) Value(5828) | FitApp(7862)
Field (steps) Key (2015-08-08) Value(5300) | FitApp(4413)
Field (steps) Key (2015-08-10) Value(1071) | FitApp(2741)
Field (steps) Key (2015-08-10) Value(2715) | (duplicate day returned)
Run Code Online (Sandbox Code Playgroud)
这是我提出请求的方式:
// Setting a start and end date using a range of 2 weeks before this moment.
Calendar cal = Calendar.getInstance();
Date now = new Date();
cal.setTime(now);
long endTime = cal.getTimeInMillis();
cal.add(Calendar.WEEK_OF_YEAR, -2);
long startTime = cal.getTimeInMillis();
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
Log.i(TAG, "Range Start: " + dateFormat.format(startTime));
Log.i(TAG, "Range End: " + dateFormat.format(endTime));
DataReadRequest readRequest = new DataReadRequest.Builder()
.aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)
.bucketByTime(1, TimeUnit.DAYS)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.build();
return Fitness.HistoryApi.readData(mClient, readRequest).await(1, TimeUnit.MINUTES);
Run Code Online (Sandbox Code Playgroud)
是否可以让bucketByTime 使用户的时区生效,以便步骤数据与用户在健身应用程序中看到的内容相关联?如果没有,我是否只需要每天提出一个单独的请求(因此是 14 个请求而不是 1 个?)
感谢您的帮助!