Google Fit SessionsApi不会在时间范围内返回所有会话

dam*_*ian 11 android google-fit-sdk google-fit

不知何故,我已经陷入了谷歌健康Android SDK的死胡同.目前,我正在构建一个应用程序,用于读取,显示和处理来自Google Fit的数据,以便用户了解其锻炼行为.

我的情况如下:我曾经在Google Pixel上进行测试 - 一切都很好,我收到了来自Google Fit的所有(超过20个)会话.一周前,我已经切换到HTC10 - 在这个设备上我只收到来自Google Fit的4个(!)会话 - 相同的应用程序,相同的代码,相同的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))
Run Code Online (Sandbox Code Playgroud)

连接后,我订阅了几个RecordingApis( ,TYPE_WORKOUT_EXERCISE,)TYPE_WEIGHTTYPE_CALORIES_EXPENDED

SessionReadRequest:

   val sessionRequest = SessionReadRequest.Builder()
                .setTimeInterval(startTime, endTime, TimeUnit.MILLISECONDS)
                .read(DataType.TYPE_WORKOUT_EXERCISE)
                .readSessionsFromAllApps()
                .enableServerQueries()
                .build()
Run Code Online (Sandbox Code Playgroud)

阅读会议:

       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
       }
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

小智 1

Google fit api 仅从本地缓存返回数据,它将返回您要求且在 Google-Fit 应用程序中可用的两个日期之间的数据。