如何正确解雇Google Play游戏帐户选择器?

时间:2017-07-13 02:38:26

标签: android google-play-services google-play-games

当用户按下登录按钮时,会启动帐户选择器。如果他们按下除帐户选择器以外的屏幕上的其他位置,它就会解散并记录日志:

W/SignInActivity: onSignInFailed()... Sign in failed during 2 ==> Returning non-OK result: 0 W/AutoManageHelper: Unresolved error while connecting client. Stopping auto-manage.

然后调用OnActivityResult()

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);
    if (requestCode == RC_SIGN_IN) {
        Task<GoogleSignInAccount> task =
                GoogleSignIn.getSignedInAccountFromIntent(intent);

        try {
            GoogleSignInAccount account = task.getResult(ApiException.class);
            onConnected(account);
        } catch (ApiException apiException) {
            String message = apiException.getMessage();
            if (message == null || message.isEmpty()) {
                message = getString(R.string.signin_other_error);
            }

            onDisconnected();

            if(message.startsWith("13")){
                new AlertDialog.Builder(MainActivity.this)
                        .setTitle(R.string.alert_nologin_title)
                        .setMessage(R.string.alert_nologin_message)
                        .setNeutralButton(android.R.string.ok, null)
                        .show();
            }else{
                new AlertDialog.Builder(this)
                        .setMessage(message)
                        .setNeutralButton(android.R.string.ok, null)
                        .show();
            }
        }
    }
}

AlertDialog.Builder在发生这种情况时显示13:消息,因此我添加了if语句来解决并针对此特定情况。

该应用已在Google Play控制台中注册,可以在正常情况下连接而不会出现问题。此外,此问题会导致应用程序崩溃,但现在不再是这种情况,用户现在可以随时解除或登录/退出,并且应用程序将保持稳定。

如果需要更多信息,项目将在GitHub上托管:https://github.com/MDodd423/TapAttack

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

请注意,在拨打特定Google服务之前,您可能需要先在Google Developer Console中注册您的应用。如果你还没有完成,set up a project and application in the API Console

然后,检查Accessing Google APIs,其中还讨论了开始automatically managed connection。在您的活动致电onStart()后,您的GoogleApiClient个实例会自动关联,并在致电onStop()后断开连接。

查看此相关SO帖子以获取更多见解: