如何使用健身api获得距离?

时间:2016-11-27 11:35:41

标签: android google-fit

我正在使用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。

以上所有代码都在后台线程中运行。

1 个答案:

答案 0 :(得分:2)

您可以尝试添加以下范围吗?

  

.addScope(新范围(Scopes.FITNESS_LOCATION_READ))

还使用新的fit api进行升级:

  

编译'com.google.android.gms:play-services-fitness:10.0.0'