Как-то зашел в тупик с Google Fit Android SDK. В настоящее время я создаю приложение, которое считывает, отображает и обрабатывает данные из Google Fit, чтобы дать пользователям представление об их поведении на тренировках.
Моя ситуация такова: раньше я тестировал на Google Pixel - все было нормально и все (более 20) сеансов получил от Google Fit. Неделю назад я перешел на HTC10 - на этом устройстве я получаю только 4 (!) Сеанса от Google Fit - то же приложение, тот же код, та же учетная запись Google Fit (в приложении Google Fit я все еще могу видеть все тренировки и занятия). Сеансы, которые я пытаюсь прочитать, были созданы не в моем приложении, а в самом приложении 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))
После подключения подписываюсь на несколько RecordingApis (TYPE_WORKOUT_EXERCISE
, TYPE_WEIGHT
, TYPE_CALORIES_EXPENDED
)
SessionReadRequest
:
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
}
Любая помощь будет оценена.