首页 文章

使Google登录对话框无法取消

提问于
浏览
3

我正在为我的Android应用使用Firebase并实施了Google帐户登录 . 我的问题是当它显示“选择Google帐户”对话框时,如果您点击它就会关闭它 . 有没有办法让这个对话框无法取消?

1 回答

  • 3

    首先,我想确保您注意到该行为存在的原因 . 如果没有取消按钮,那么用户如何改变主意呢?您通常希望避免强迫用户进入他们后来不想做的事情 .

    That being said, here is my answer:

    我不能100%肯定地说不,但在查看API参考之后,我没有看到有办法改变该登录对话框的默认行为 .

    请参阅API参考:https://developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInApi

    我建议处理它的最佳方法是在代码的 onActivityResult 中处理它 . 只需在返回的数据上调用 getStatusCode() 即可获得登录状态,并查看是否获得 SIGN_IN_CANCELLED 常量 . 这将表明用户取消了我认为如果他们离开屏幕就会发生这种情况 . 无论如何,如果不是返回的代码,只需在控制台中打印它,并在单击关闭并取消对话框时查看返回的代码 .

    然后,如果他们取消了,您可以重新启动屏幕或询问他们发生了什么 . 我会建议后者避免强迫他们进入这样一种情况,即获得他们想要的东西的唯一方法是强制关闭你的应用程序 .

    Edit:

    以下是有关检查该状态代码的文档中的示例 . 这样做可能比通过拉动状态对象并以此方式获取代码更好:

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
    
        // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
        if (requestCode == RC_SIGN_IN) {
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            handleSignInResult(result);
        }
    }
    

相关问题