4

Google Play サービス 7.0 にアップグレードした後、GoogleApiClientGoogle Fit に接続するためのコードが機能しなくなりました。

エラー:(87, 21) エラー: addApi(Void) メソッドに適したメソッドが見つかりません Builder.addApi(Api,O) は適用できません (実引数リストと仮引数リストの長さが異なるため、引数からインスタンス化できません) メソッド Builder.addApi( Api) は適用されません (実際の引数 Void は、メソッド呼び出しの変換によって Api に変換できません) ここで、O は型変数です: O extends HasOptions がメソッド addApi(Api,O) で宣言されました

を構築するための私のコードGoogleApiClientは次のとおりです。

mGoogleApiClient = new GoogleApiClient.Builder(this)
    .addApi(Fitness.API)
    .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
    .addConnectionCallbacks(this)
    .addOnConnectionFailedListener(this)
    .build();
4

1 に答える 1

12

Google Play サービス 7.0 のブログ投稿によると:

に渡した以前の Fitness.API はGoogleApiClient、Google Fit Android API の高レベル セットと一致する多数の API に置き換えられました。

  • SensorsApi を介して生のセンサー データにアクセスするためのSENSORS_API
  • RecordingApiを介してデータを記録するための RECORDING_API
  • HistoryApiを介してデータを挿入、削除、または読み取るための HISTORY_API
  • SessionsApiを介してセッションを管理するための SESSIONS_API
  • BleApi を介して Bluetooth Low Energy デバイスとやり取りするためのBLE_API
  • ConfigApi を介して Google Fit のカスタム データ型と設定にアクセスするためのCONFIG_API

したがって、 を更新GoogleApiClientして、使用する適切な API をすべて追加する必要があります。たとえば、SensorsApiと の両方を使用する場合RecordingApi、コードは次のようになります。

mGoogleApiClient = new GoogleApiClient.Builder(this)
    .addApi(Fitness.SENSORS_API)
    .addApi(Fitness.REPORTING_API)
    .addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ_WRITE))
    .addConnectionCallbacks(this)
    .addOnConnectionFailedListener(this)
    .build();

注: 古いバージョンの Google Play サービスに対してコンパイルされたアプリは引き続き動作しますが、同じブログ投稿で説明されているように、Google Play サービス 7.0 の分割 API に伴うメモリの利点は得られません。

この変更により、バックグラウンドで実行されている Google Fit 対応アプリのメモリ要件が大幅に削減されます。いつものように、以前のバージョンの Google Play サービスで構築されたアプリは引き続き機能しますが、この変更を利用するには、Google Fit 対応アプリを再構築することを強くお勧めします。

于 2015-03-19T23:29:07.737 に答える