如何在Android中正确设置Google Play登录?

前端之家收集整理的这篇文章主要介绍了如何在Android中正确设置Google Play登录? 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我在android中开发了一个游戏.我尝试实现GooglePlay登录,但显示错误.我无法调试此错误.我尝试在模拟器以外的其他手机型号中安装该应用程序.

码:

public void startSignInIntent() {     
    startActivityForResult(mGoogleSignInClient.getSignInIntent(),RC_SIGN_IN);
}

 @Override
    public void onActivityResult(int requestCode,int resultCode,Intent intent) {

        if (requestCode == RC_SIGN_IN) {

            Task<GoogleSignInAccount> task =
                    GoogleSignIn.getSignedInAccountFromIntent(intent);

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


                new AlertDialog.Builder(this)
                        .setMessage(message)
                        .setNeutralButton(android.R.string.ok,null)
                        .show();
            }

        }
        super.onActivityResult(requestCode,resultCode,intent);
    }

It Loads the GP Games

Then this happens

编辑

现在,按照建议的方法操作后,登录对话框将立即关闭,而不会显示任何错误.

最佳答案
ApiException的消息并没有真正告诉您:

String message = apiException.getMessage();

为了调试此问题,ApiException的状态将非常有帮助:

int StatusCode = apiException.getStatusCode();

documentation;它可能与oAuth2范围有关;但问题是缺少构建GoogleSignInClient的代码(可能与重现错误有关).

另一个怀疑是丢失或过时的google-services.json.它需要添加用于签名该APK包的密钥的匹配(调试或发布或两者兼有)密钥指纹.即使不使用Firebase,也必须在其中设置项目,以便添加密钥指纹并获取一个配置文件(字符串资源中必须有一些google_app_id,而这正是070​​02会从中生成内容)配置文件).

状态4表示SIGN_IN_REQUIRED

The client attempted to connect to the service but the user is not signed in.

The client may choose to continue without using the API.

身份验证失败会提示google_app_id或密钥指纹不匹配.想想一个人不需要许可就可以使用GoogleSignInClient获取当前登录的Google帐户…因此,这很可能意味着该API客户端未登录到Google Play.

猜你在找的Android相关文章