0
Google PlayゲームAPIで本当にばかげた問題が発生しました。ユーザーが参加すると再びサインインする必要がありますサインインしました。Google Playゲームが最初の試合でサインインに失敗し、2回目の試合で成功
私は起動時に自動サインインしているので、ユーザーがアプリケーションを開くと、サインインダイアログが表示され、電子メールを選択してメッセージを表示せずに閉じ、その後サインインをクリックする必要があります再び署名される。
だから、なぜ起こっているのか、人々が持っている人気の問題はサインインしていないのですが、これは最初の試行では失敗しています。
マイコード:
public class MainActivity extends FragmentActivity implements
View.OnClickListener,GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener{
private GoogleApiClient mGoogleApiClient;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Games.API)
.addScope(Games.SCOPE_GAMES)
.build();
}
@Override
protected void onStart(){
super.onStart();
mGoogleApiClient.connect();
}
@Override
protected void onStop() {
super.onStop();
if (mGoogleApiClient.isConnected()) {
mGoogleApiClient.disconnect();
}
}
@Override
public void onConnected(@Nullable Bundle bundle) {
}
@Override
public void onConnectionSuspended(int i) {
mGoogleApiClient.connect();
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
if (connectionResult.hasResolution()) {
try {
connectionResult.startResolutionForResult(this, 2);
} catch (IntentSender.SendIntentException e) {
mGoogleApiClient.connect();
} catch (Exception e) {
startActivityForResult(null, 3);
}
}
}
Wi-Fiが存在しない場合やサインインにエラーがある場合、サインインの問題が何度も繰り返されますが、これを処理するには、より良い方法があることに留意してくださいブール値を使用するよりもループですか? – Jaeger
「Play Gamesの初期化ガイド」(https://developers.google.com/games/services/android/init)で、より堅牢なコードを使用したい場合は、2つのブール値「mAutoStartSignInflow」と'onConnectionFailed'を処理するためのガードとして' mSignInClicked'を使用します。 – ianhanniballake