我正在使用Google Fit API,具体使用HistoryApi
我正在使用Fitness.HistoryApi.readDailyTotal来获取步数,卡路里和距离。从那里我得到了步数和卡路里,但距离正在产生问题。但onResult没有被调用。任何帮助都将受到高度赞赏。
PendingResult<DailyTotalResult> distanceResult = Fitness.HistoryApi
.readDailyTotal(mClient, DataType.TYPE_DISTANCE_DELTA);
distanceResult.setResultCallback(new ResultCallback<DailyTotalResult>() {
@Override
public void onResult(DailyTotalResult dailyTotalResult) {
if (dailyTotalResult.getStatus().isSuccess()) {
DataSet totalSet = dailyTotalResult.getTotal();
long distance = totalSet.isEmpty()? 0: totalSet.getDataPoints().get(0).getValue(Field.FIELD_DISTANCE).asInt();
Log.i("-------------", "distance= " + distance);
}
}
});
从上面的代码if (dailyTotalResult.getStatus().isSuccess()) {
来看,如果是距离则这是假的,当我尝试获取步数和卡路里时它返回true。
以上所有代码都在后台线程中运行。
答案 0 :(得分:2)
您可以尝试添加以下范围吗?
.addScope(新范围(Scopes.FITNESS_LOCATION_READ))
还使用新的fit api进行升级:
编译'com.google.android.gms:play-services-fitness:10.0.0'