Google Play Games 第一次登录失败,第二次成功
Google Play Games fails to sign-in at the first attemp, success at the second
我在 Google Play 游戏 API 中遇到一个非常愚蠢的问题,当用户加入时,他需要再次单击登录才能登录。
我在启动时有自动登录,所以当用户打开应用程序时,它会显示登录对话框,选择一个电子邮件,然后在没有任何消息的情况下关闭,之后用户必须点击登录再次登录。
因此,不知道为什么会发生这种情况,人们遇到的普遍问题是无法登录,但在第一次尝试时就失败了。
我的代码:
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);
}
}
}
您必须在 onActivityResult()
方法中调用 mGoogleApiClient.connect()
:
@Override
protected void onActivityResult(int request, int response, Intent data) {
super.onActivityResult(request, response, data);
mGoogleApiClient.connect();
}
否则 connectionResult.startResolutionForResult
的结果不会更新 GoogleApiClient
状态。
我在 Google Play 游戏 API 中遇到一个非常愚蠢的问题,当用户加入时,他需要再次单击登录才能登录。
我在启动时有自动登录,所以当用户打开应用程序时,它会显示登录对话框,选择一个电子邮件,然后在没有任何消息的情况下关闭,之后用户必须点击登录再次登录。
因此,不知道为什么会发生这种情况,人们遇到的普遍问题是无法登录,但在第一次尝试时就失败了。
我的代码:
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);
}
}
}
您必须在 onActivityResult()
方法中调用 mGoogleApiClient.connect()
:
@Override
protected void onActivityResult(int request, int response, Intent data) {
super.onActivityResult(request, response, data);
mGoogleApiClient.connect();
}
否则 connectionResult.startResolutionForResult
的结果不会更新 GoogleApiClient
状态。