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

时间:2017-10-02 19:26:11

标签: android google-fit google-fit-sdk

不知何故,我使用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_EXERCISETYPE_WEIGHTTYPE_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
       }

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

Google fit api仅返回本地缓存中的数据,它会在您要求的两个日期之间返回数据,并在Google-Fit应用中提供。