2016-08-05 5 views
0

Google 피트니스가 설치된 Android 휴대 전화에 자동으로 기록되는 활동의 예로는 걷기/달리기/자전거 타기가 있습니다. 나는google fit api에서 집계 된 활동 요약 누락 된 활동이 자동으로 기록됨

DataReadRequest readRequest = new DataReadRequest.Builder() 
    .aggregate(DataType.TYPE_ACTIVITY_SEGMENT, DataType.AGGREGATE_ACTIVITY_SUMMARY) 
    .bucketBySession(1, TimeUnit.MINUTES) 
    .setTimeRange(startTime, endTime, TimeUnit.MILLISECONDS) 
    .build(); 

DataReadResult dataReadResult = Fitness.HistoryApi 
    .readData(googleApiClient, readRequest) 
    .await(1, TimeUnit.MINUTES); 

이 쿼리의 결과는 활동의 시작 시간과 지속 시간 활동의 목록을 제공합니다 ... 다음 쿼리와 안드로이드를위한 맞춤 API에서 이러한 활동을 얻는 노력했습니다. 이것은 정확히 내가 기대하는 바이지만 어떤 이유로 Google 적합 애플리케이션에 의해 자동으로 기록되는 데이터를 반환하지 않습니다. 단지 이러한 조건 중 하나에 해당 항목을 반환하는 것 같다

  • 활동을 수동으로 구글에 맞는 인터페이스에서 기록되었다
  • "세션"역사를 사용
  • 활동이 수동으로 추가 된 세션 API를 사용하여 기록 된 API (이 테스트하지 않았지만이 내 가정이다)

질문

누구의 A는 내 장치에 맞는 Google 검색 응용 프로그램에 의해 자동으로 기록되는 데이터를 얻기 위해 쿼리를 수정해야하는 경우가 있습니까? 이 특정 데이터를 사용할 수없는 경우 (자동으로 기록되는 단계를 얻을 수 있기 때문에 이상하게 보일 수 있습니다).

답변

1

수동으로 데이터를 저장하기 위해 구독을 설정 했습니까? 내가 활동 세그먼트 데이터가 잘 얻을

Fitness.RecordingApi.subscribe(mClient, DataType.TYPE_ACTIVITY_SEGMENT) 
    .setResultCallback(new ResultCallback<Status>() { 
     @Override 
     public void onResult(Status status) { 
      if (status.isSuccess()) { 
       if (status.getStatusCode() 
         == FitnessStatusCodes.SUCCESS_ALREADY_SUBSCRIBED) { 
        Log.i(TAG, "Existing subscription for activity detected."); 
       } else { 
        Log.i(TAG, "Successfully subscribed!"); 
       } 
      } else { 
       Log.i(TAG, "There was a problem subscribing."); 
      } 
     } 
}); 
+0

음 ... 그래, 내가 그걸 시도했는데 어떤 이유로 나는 여전히 데이터를 얻을 수 없다. 나의 가정은 내가 걷고/달리기/자전거 타기 데이터를 내가 활성화하고 앞으로 보내는 지점에서 얻을 것이라고했습니다. – justyn

0

방법은 다음과 같습니다. 나의 읽기 요청은 당신과 다르므로 당신을 복사하고 일주일 분의 데이터를 읽고 데이터 세트를받지 못했습니다. 지난 주에 저는 수동으로 데이터 세션을 삽입하지 않았습니다. 제 생각에 bucketBySession이 문제입니다. I 3 개 시험 (1 주 내게) 시간 범위는 설정되었다고 가정하여 설명 각 실행 DataReadRequest :

  1. read(DataType.TYPE_ACTIVITY_SEGMENT) 단계; 집합체 없음, 버킷 화 없음. 결과 : 좋은 데이터입니다.
  2. aggregate(DataType.TYPE_ACTIVITY_SEGMENT, DataType.AGGREGATE_ACTIVITY_SUMMARY)bucketBySession(1, TimeUnit.MINUTES). 결과 : 데이터 세트 또는 버킷이 없습니다.
  3. aggregate(DataType.TYPE_ACTIVITY_SEGMENT, DataType.AGGREGATE_ACTIVITY_SUMMARY)bucketByTime(1, TimeUnit.DAYS). 결과 : 좋은 데이터
bucketBySession documentation 그것은 독점적으로 Session의 일부 데이터를 반환하는 것이 매우 명확하지 않습니다 제 생각에는

,하지만 그뿐만 아니라 제 3 개 시험의 결과를 설명하는 것 같다 당신의 발견 한 조건 목록.

Google 피트니스 앱이 설치되어 있으며 동일한 데이터가 자동으로 기록/구독되지 않을지 확실하지 않습니다.