如何使用 fitness api 获取距离?
How do I get distance using fitness api?
我正在使用 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()) {
这在距离的情况下是错误的,而在我尝试获取步数和卡路里时它 returns 是正确的。
以上所有代码都在后台线程中运行。
能否尝试添加以下范围?
.addScope(new Scope(Scopes.FITNESS_LOCATION_READ))
也升级新版 api:
compile 'com.google.android.gms:play-services-fitness:10.0.0'
我正在使用 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()) {
这在距离的情况下是错误的,而在我尝试获取步数和卡路里时它 returns 是正确的。
以上所有代码都在后台线程中运行。
能否尝试添加以下范围?
.addScope(new Scope(Scopes.FITNESS_LOCATION_READ))
也升级新版 api:
compile 'com.google.android.gms:play-services-fitness:10.0.0'