2017-10-02 8 views
9

どうやら私はGoogle Fit Android SDKを使い終わってしまった。現在、Google Fitのデータを読み取り、表示して処理するアプリケーションを構築しており、ユーザーにはトレーニングの動作に関する情報を提供しています。Google Fit SessionsApiは時間範囲内のすべてのセッションを返さない

私の状況は次のとおりです。私はGoogle Pixelでテストしました。すべて正常であり、Google Fitからすべて(20以上)のセッションを受け取りました。 1週間前、私はHTC10に切り替えました - このデバイスでは、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_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 
     } 

ご協力いただければ幸いです。

+0

Google PixelとHTCの横にある他のデバイスの動作は何ですか? – AADProgramming

+0

まだ3台目のデバイスでテストしていませんでした。なぜなら、2台のデバイス間でデータが一貫していると思っていたからです。 – damian

答えて

0

Google適合APIは、ローカルキャッシュからのみデータを返します。リクエストした2つの日付の間にデータを返します.Google Fitアプリで利用できます。

+0

これは 'enableServerQueries()'の目的です - ローカルキャッシュだけでなくデータGoogle Fit APIから – damian

関連する問題