我目前正在尝试使用Google健身历史记录API查找距离跑。我正在执行以下读取请求:
Log.v("accessGoogle Fit", "Accessing google Fit");
DataReadRequest readRequest = new DataReadRequest.Builder()
.aggregate(DataType.TYPE_DISTANCE_DELTA, DataType.AGGREGATE_DISTANCE_DELTA)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.bucketByTime(1, TimeUnit.DAYS)
.build();
mClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Fitness.HISTORY_API)
.addScope(Fitness.SCOPE_ACTIVITY_READ)
.build();
PendingResult<DataReadResult> pendingresult =
Fitness.HistoryApi.readData(mClient, readRequest);
pendingresult.setResultCallback(new ResultCallback<DataReadResult>() {
@Override
public void onResult(@NonNull DataReadResult dataReadResult) {
if (dataReadResult.getBuckets().size()>0)
{
for (Bucket bucket : dataReadResult.getBuckets())
{
List<DataSet> dataSets = bucket.getDataSets();
for (DataSet dataSet : dataSets)
{
processDataSet(dataSet);
}
}
}
}
});
如您所见,在构建请求期间,.aggregate中请求进行聚合的类型为距离增量和聚合距离增量。这会在选定的时间段内产生距离增量,但是未指定移动该距离所用的方式-跑步?骑自行车?开车吗在公交车上?
如果可能,我可以以某种方式过滤对距离增量的请求,使其仅包括行驶距离吗?使用Google Fit History API的开发者是否无法获得行驶距离增量的数据?
谢谢您的帮助!