我正在使用一个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资源管理器调用:
{
"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 AM,所以是1560402000000毫秒)。所列重量的日期为6月13日(星期四)上午12:00,但是API资源管理器未返回任何内容。
答案 0 :(得分:0)
返回最大值,最小值和平均值。如果您需要全部退还,则使用“ read(DataType.TYPE_WEIGHT)”代替“ aggregate”。