2016-11-27 4 views
1

Google 피트니스 API를 사용하고 있습니다. HistoryApi를 사용하여 구체적으로 작성하십시오.fitness api를 사용하여 거리를 얻으려면 어떻게해야합니까?

단계, 칼로리 및 거리를 얻기 위해 Fitness.HistoryApi.readDailyTotal을 사용하고 있습니다. 그걸 통해 단계와 칼로리를 얻었지만 거리가 문제를 만들고 있습니다. 하지만 onResult는 호출되지 않습니다. 어떤 도움을 주시면 감사하겠습니다. 코드 if (dailyTotalResult.getStatus().isSuccess()) { 이상에서

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); 
     } 
    } 
}); 

이 거리의 경우 거짓 내가 단계와 칼로리를 얻으려고하는 동안은 true를 반환합니다.

위의 코드는 모두 백그라운드 스레드에서 실행됩니다.

+0

동일한 문제에 직면 한 사람이 있으면 알려 주시기 바랍니다. – Smeet

답변

2

아래 범위를 추가해주세요.

.addScope (새 범위 (Scopes.FITNESS_LOCATION_READ))

또한 새로운 맞게 API를 업그레이드 :

컴파일 'com.google.android.gms : 플레이 서비스 - 적합성 : 10.0.0 '

+0

thnx a lot @smeet – Query