将Google Fit Data提取到Android应用程序中
作者:互联网
我们如何才能为特定用户获取存储在google fit云中的数据?
我尝试使用History API但没有显示数据.然后我尝试输入一些数据vai History api,现在我只能通过历史api看到这些数据而不是实际存在的完整数据.
DataReadRequest readRequest = queryFitnessData();
DataReadResult dataReadResult =
Fitness.HistoryApi.readData(mClient, readRequest).await(1, TimeUnit.MINUTES);
数据请求是
DataReadRequest readRequest = new DataReadRequest.Builder()
.aggregate(DataType.TYPE_STEP_COUNT_DELTA, DataType.AGGREGATE_STEP_COUNT_DELTA)
.bucketByTime(1, TimeUnit.DAYS)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.build();
解决方法:
根据你的问题,很难知道你期待什么,但没有收到.更多细节会有所帮助.
我猜这是因为Fit正在返回默认合并的步骤流.基本上,如果两个应用程序同时报告相同60分钟的1,000个步骤,Fit将假设它们是重复的并且“合并”它们以用于响应.
尝试丢失存储桶功能,看看你是否得到了原始步骤.这段代码适合我:
final DataReadRequest readRequest = new DataReadRequest.Builder()
.read(DataType.TYPE_STEP_COUNT_DELTA)
.setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS)
.build();
DataReadResult dataReadResult =
Fitness.HistoryApi.readData(mGoogleApiFitnessClient, readRequest).await(1, TimeUnit.MINUTES);
DataSet stepData = dataReadResult.getDataSet(DataType.TYPE_STEP_COUNT_DELTA);
int totalSteps = 0;
for (DataPoint dp : stepData.getDataPoints()) {
for(Field field : dp.getDataType().getFields()) {
int steps = dp.getValue(field).asInt();
totalSteps += steps;
}
}
标签:google-fit,android 来源: https://codeday.me/bug/20190824/1711836.html