【问题标题】:Why isn't Google Fit returning all weights?为什么 Google Fit 不返回所有重量?
【发布时间】:2020-03-31 06:39:14
【问题描述】:

我正在使用一个 android 应用程序来检索用户在给定时间范围内的体重。用户可以手动同步给定日期,它将使用 mm/dd/yyyy 00:00:00 和 mm/dd/yyyy 23:59:59:999。在大多数情况下,这可以正常工作,但是我有一个似乎破坏它的工作流程。我有一个 Wifi 秤,我会自己称重,然后我将这些重量同步到 MyFitnessPal。然后我将 MyFitnessPal 同步到 Google Fit。这种集成似乎有效,因为我的体重在 Google Fit 中正确显示。然而,MyFitnessPal 似乎只保存称重的日期而不是时间。当我在称重发生的同一天为此 Android 应用程序运行手动同步过程时,它不会返回重量。

我尝试从 android 和 Google API Explorer 中获取数据。我可以通过更改 startTimeMillis 来获得过去的重量,但我无法获得当前日期的重量。就好像手机上的体重没有与 Google Fit 数据存储同步,但即使是这样,我也希望 android 应用能够检索体重。

Java 代码:

DataReadRequest.Builder()
        .aggregate(DataType.TYPE_WEIGHT, DataType.AGGREGATE_WEIGHT_SUMMARY)
        .bucketByTime(1, TimeUnit.DAYS)
        .setTimeRange(startMillis, endMillis, TimeUnit.MILLISECONDS)
        .enableServerQueries()
        .build()

API Explorer 调用:

{
 "aggregateBy": [
  {
   "dataSourceId": "derived:com.google.weight:com.google.android.gms:merge_weight"
  }
 ],
 "endTimeMillis": "1560488399999",
 "startTimeMillis": "1560402000000"
}

我从 API Explorer 得到的结果在这里:

{
 "bucket": [
  {
   "startTimeMillis": "1560402000000",
   "endTimeMillis": "1560488399999",
   "dataset": [
    {
     "dataSourceId": "derived:com.google.weight:com.google.android.gms:merge_weight",
     "point": [
     ]
    }
   ]
  }
 ]
}

我希望在我的Google Fit app 中列出一个权重,因为该 startTimeMillis(自纪元为当地时间 6 月 13 日星期四上午 12:00 以来的 1560402000000 毫秒)属性存在权重。列出的权重日期是 6 月 13 日星期四中午 12:00,但 API Explorer 没有返回任何内容。

【问题讨论】:

    标签: android google-api google-fit google-apis-explorer


    【解决方案1】:

    返回最大值、最小值和平均值。如果您需要返回所有这些,则使用“读取(DataType.TYPE_WEIGHT)”而不是“聚合”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-14
      • 2017-07-07
      • 1970-01-01
      相关资源
      最近更新 更多