java - 阅读 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();
注意:这种聚合已被弃用,但我找不到使用非弃用方法接收相同结果的“正确”方式。
现在:在我的 Fit 示例日中,我有两项活动。第一个是自动生成的 2.32 公里 32 分钟的“下午步行”,第二个是手动添加的 1 小时跑步活动。上面的查询返回两行字段活动/持续时间/num_segments:
- 运行 / 3600000 (1h) / 1
- 步行 / 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[activity(i), duration(i), num_segments(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. SEGMENTS: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. SEGMENTS:10 2FIELD:num_segments(i) 开始时间:10 月 16 日星期五 09:20:30 GMT+02:00 2020 结束时间:10 月 16 日星期五 23:15:17 GMT+02:00 2020
解决方案
推荐阅读
- python - 在 Pygame 中的点击条件下显示一个矩形
- java - 在 Java 11 中将 map.forEach 与 Lambda 表达式一起使用时收到 Set language Level to 8 错误
- java - 如何使用 youtube player API 从频道视频列表中播放下一个视频
- java - 我正在检查 pallindrome 字符串..为什么这总是打印 yes
- django - 如何覆盖 Django 多对多字段 add() 和 remove() 方法
- java - 无法自动装配字段:私有 org.optaplanner.core.api.solver.SolverManager
- image - 如何从 CachedNetworkImageProvider Flutter 中的 url 加载图像中获取图像 base64
- c++ - 如何在布尔元素向量上使用 std::find 算法
- flutter - Flutter:路由上下文始终指向它正在路由的小部件 - 我希望它具有父小部件的上下文
- python - 在 Github 操作中的 Python 包中导入 Fortran 模块的问题