2017-02-25 6 views
0

Playゲームサービスを使用したいので、GoogleApiClientとGames.APIを使用してconnect()メソッドを呼び出します。しかし、常にonConnectionFailed()でRESOLUTION_REQUIREDというエラーが返されます。私はAuth.API代わりGames.APIを使用する場合GoogleApiClient Games.API接続エラー

public class MainActivity extends Activity implements 
    ConnectionCallbacks, 
    OnConnectionFailedListener { 
GoogleApiClient googleApiClient; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    googleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(Games.API).addScope(Games.SCOPE_GAMES) 
      .build(); } 

@Override 
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { 
    //ConnectionResult{statusCode=RESOLUTION_REQUIRED, resolution=PendingIntent{dd739ef: [email protected]}, message=null} 
} 

はしかし、接続が成功したと呼び出し方法onConnected()。私はエミュレータを使用して

public class MainActivity extends Activity implements 
    ConnectionCallbacks, 
    OnConnectionFailedListener { 
GoogleApiClient googleApiClient; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    googleApiClient = new GoogleApiClient.Builder(this) 
      .addConnectionCallbacks(this) 
      .addOnConnectionFailedListener(this) 
      .addApi(Auth.GOOGLE_SIGN_IN_API) 
      .build(); 
} 

@Override 
public void onConnected(Bundle connectionHint) { 
    //Success 
} 

、エミュレータでプレイサービスのバージョンは10.0であるので、私はあまりにも

compile 'com.google.android.gms:play-services-games:10.0.0' 
compile 'com.google.android.gms:play-services-auth:10.0.0' 

は、私がここに Google Play fails to connect, statusCode=RESOLUTION_REQUIRED同じ問題を発見したのGradleでバージョン10.0を構築しますが、著者は取得できませんでした任意の答え。エラーコード RESOLUTION_REQUIREDConnectionResultからベース

答えて

0

接続を完了するには、解像度のいくつかのフォームを必要とします。解像度はstartResolutionForResult(Activity, int)で開始できます。返された結果がRESULT_OKの場合は、接続をさらに試行するか、解決する必要がある次の問題に進む必要があります。

さらに、Manually managed connectionsで説明されているように、接続の失敗の処理方法を確認することもできます。述べたように、あなたのアプリがonConnectionFailed())コールバックへの呼び出しを受け

は、あなたが提供ConnectionResultオブジェクト上hasResolution()を呼び出す必要があります。 trueを返す場合は、ConnectionResultオブジェクトのstartResolutionForResult()を呼び出して、エラーを解決するためにユーザーが即座に対応するようにアプリにリクエストできます。この状況でstartResolutionForResult()メソッドはstartActivityForResult()と同じように動作し、ユーザーがエラーを解決するのに役立つコンテキストに適したアクティビティを起動します。