微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

阅读Google Fit自动生成的活动

如何解决阅读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 举报,一经查实,本站将立刻删除。