Google Fit Sessionsapi未在时间范围内返回所有会话



以某种方式,我遇到了Google Fit Android SDK的终点。目前,我正在构建一个应用程序,该应用程序读取,显示和处理来自Google Fit的数据,以使用户了解其锻炼行为。

我的情况如下:我曾经在Google Pixel上进行测试 - 一切都很好,我从Google Fit收到了全部(超过20个)会议。一个星期前,我已经切换到HTC10-在此设备上,我只收到Google Fit的4(!)会话 - 相同的应用,相同的代码,相同的Google Fit帐户(在Google Fit App中我仍然可以看到所有锻炼和会议)。我要阅读的会话不是使用我的应用程序创建的,而是使用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))

连接后,我订阅了几个录音带(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
       }

任何帮助将不胜感激。

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

最新更新