어떻게 든 Google Fit Android SDK로 막 다른 골목에 처했습니다. 현재 Google 피트니스의 데이터를 읽고 표시하고 처리하는 애플리케이션을 구축하여 사용자에게 운동 행동에 대한 통찰력을 제공합니다.Google 맞춤 세션 시간 범위의 모든 세션을 반환하지 않는 Api
내 상황은 다음과 같습니다. Google Pixel에서 테스트했는데 모든 것이 좋았으며 Google 피트니스에서 20 개가 넘는 세션을 모두 받았습니다. 일주일 전, HTC10으로 전환했습니다.이 기기에서 Google 피트니스에서받은 세션 수는 4 회 (!)입니다. 동일한 앱, 동일한 코드, 동일한 Google 피트니스 계정 (Google 피트니스 앱에서 여전히 볼 수 있습니다. 모든 운동 및 세션). 내가 읽으려는 세션은 내 앱으로 제작 된 것이 아니라 Google Fit 앱 자체로 만들었습니다. 그러나 아직도, 오래된 전화에서 나는 그것을 읽을 수 있었다, 내가 할 수없는 새로운 것에 그것을 읽을 수 있었다.
더 명확하게하기 위해 일부 코드를 붙여 넣으십시오.
GoogleApiClient 설정
googleApiClient = GoogleApiClient.Builder(context)
.addApi(Fitness.HISTORY_API)
.addApi(Fitness.SESSIONS_API)
.addApi(Fitness.RECORDING_API)
.addApi(Fitness.GOALS_API)
.addScope(Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
.addScope(Scope(Scopes.FITNESS_BODY_READ_WRITE))
연결 한 후, 나는
SessionReadRequest
(TYPE_CALORIES_EXPENDED
, TYPE_WORKOUT_EXERCISE
, TYPE_WEIGHT
) 여러 RecordingApis에 가입 :
val sessionRequest = SessionReadRequest.Builder()
.setTimeInterval(startTime, endTime, TimeUnit.MILLISECONDS)
.read(DataType.TYPE_WORKOUT_EXERCISE)
.readSessionsFromAllApps()
.enableServerQueries()
.build()
읽기 세션 :
Fitness.SessionsApi.readSession(googleApiClient, sessionRequest)
.setResultCallback { result ->
Timber.d("Sessions result: %s", result.status)
Timber.d("Got %d sessions", result.sessions.size) // returns only 4! for 2014-NOW timerange
}
도움이 될 것입니다.
Google Pixel 및 HTC 옆에있는 다른 기기의 동작은 무엇입니까? – AADProgramming
어쨌든 두 장치에서 데이터의 일관성이 유지되기를 기대하기 때문에 아직 세 번째 장치에서 테스트하지 않았습니다. – damian