阅读Google Fit自动生成的活动

问题描述

我正在努力使它按预期工作。我需要枚举我在Google Fit应用中看到的所有活动(例如,自动“晨跑”或手动添加跑步)。我使用了以下查询

DataReadRequest readRequest = new DataReadRequest.Builder()
    .aggregate(DataType.TYPE_ACTIVITY_SEGMENT,DataType.AGGREGATE_ACTIVITY_SUMMARY)
    .enableServerQueries()
    .setTimeRange(startTime,endTime,TimeUnit.MILLISECONDS)
    .bucketByTime(1,TimeUnit.DAYS)
    .build();

注意:不建议使用这种聚合,但是我找不到使用不推荐使用的方法来接收相同结果的“正确”方法

现在:在健身的示例日中,我进行了两项活动。第一个自动生成的2.32公里32分钟的“下午步行”,第二个是手动添加的1h跑步活动。上面的查询返回两行,其中包含活动/持续时间/ num_segments字段:

  1. 运行/ 3600000(1h)/ 1
  2. 行走/ 2674044(〜44分钟)/ 10

如您所见,我增加了12分钟的步行时间,为什么呢?如何获得我在应用程序中看到的确切内容?此外,当天的总步数不是我在Fit上看到的两项活动的总和。真是一团糟...

编辑:关于时区,我这样子得到:

Calendar calendar = Calendar.getInstance(Locale.getDefault());
long endTime = calendar.getTimeInMillis();
calendar.add(Calendar.MONTH,-1);
calendar.set(Calendar.HOUR_OF_DAY,0);
calendar.set(Calendar.MINUTE,0);
calendar.set(Calendar.SECOND,0);
calendar.set(Calendar.MILLISECOND,0);
long startTime = calendar.getTimeInMillis();

这些是当天的结果:

数据类型:DataType {com.google.activity.summary [活动(i),持续时间(i),数字段(i)]}

按活动:正在运行 领域:活动(i) 开始时间:周五10月16日12:10:00 GMT + 02:00 2020 结束时间:星期五10月16日13:10:00 GMT + 02:00 2020


持续时间:3600000 领域:持续时间(i) 开始时间:周五10月16日12:10:00 GMT + 02:00 2020 结束时间:星期五10月16日13:10:00 GMT + 02:00 2020


N。分部:1 栏位:num_segments(i) 开始时间:周五10月16日12:10:00 GMT + 02:00 2020 结束时间:星期五10月16日13:10:00 GMT + 02:00 2020


根据活动:步行 领域:活动(i) 开始时间:周五10月16日09:20:30 GMT + 02:00 2020 结束时间:星期五10月16日23:15:17 GMT + 02:00 2020


持续时间:2674044 领域:持续时间(i) 开始时间:周五10月16日09:20:30 GMT + 02:00 2020 结束时间:星期五10月16日23:15:17 GMT + 02:00 2020


N。分部:10 2场:num_segments(i) 开始时间:周五10月16日09:20:30 GMT + 02:00 2020 结束时间:星期五10月16日23:15:17 GMT + 02:00 2020

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)