不知何故,我使用Google Fit Android SDK陷入了死胡同。目前,我正在构建一个应用程序,用于读取,显示和处理来自Google健身的数据,以便用户了解其锻炼行为。
我的情况如下:我曾经在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))
连接后,我订阅了几个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
}
任何帮助都将不胜感激。
答案 0 :(得分:0)
Google fit api仅返回本地缓存中的数据,它会在您要求的两个日期之间返回数据,并在Google-Fit应用中提供。