Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Google Signinclient时没有帐户选择器_Java_Android_Authentication_Google Signin_Google Play Games - Fatal编程技术网

Java 使用Google Signinclient时没有帐户选择器

Java 使用Google Signinclient时没有帐户选择器,java,android,authentication,google-signin,google-play-games,Java,Android,Authentication,Google Signin,Google Play Games,我已经对这个问题做了很多调查,它已经连续三天困扰着我,我想我需要从侧面重新审视一下 您可以单击“图像”以查看其全尺寸版本 我的问题是-我想谷歌玩游戏帐户选择器出现在每次我登录使用。但现在,当我使用scope登录时,将显示“同意”窗口: 只有当我选择拒绝时,帐户选取器才会显示: 如果我按Allow它会将我的个人资料缓存在那里,下次我按登录时,它不会问我任何问题,只会用我的默认帐户默默地登录。即使在此之前我调用了GoogleSignInClient.signOut()。唯一使同意窗口再次出现的方

我已经对这个问题做了很多调查,它已经连续三天困扰着我,我想我需要从侧面重新审视一下

您可以单击“图像”以查看其全尺寸版本

我的问题是-我想谷歌玩游戏帐户选择器出现在每次我登录使用。但现在,当我使用scope登录时,将显示“同意”窗口:

只有当我选择拒绝时,帐户选取器才会显示:

如果我按Allow它会将我的个人资料缓存在那里,下次我按登录时,它不会问我任何问题,只会用我的默认帐户默默地登录。即使在此之前我调用了GoogleSignInClient.signOut()。唯一使同意窗口再次出现的方法是在登录之前调用GoogleSignInClient.revokeAccess()

我认为这背后的原因是谷歌游戏账户设置中的复选框:

但是,如果我在这里运行任何Google示例(例如ButtonClicker),则每次我在按下“注销”按钮后按下“登录”按钮时,帐户选择器都会出现。我不知道我的测试样本应用程序和那些样本之间有什么区别。我甚至尝试使用谷歌服务和安卓SDK的较低版本

复制起来非常简单——只需制作一个基本的Android应用程序,其中有两个按钮:登录注销。当然,您需要配置Goole Play应用程序来测试这一点。代码在这里

编辑:经过深入分析(主要是从Google示例中搜索ButtonClicker的片段),我找到了触发account picker在下次登录时显示的内容-成功登录后立即调用的这行代码:

Games.getGamesClient(MainActivity.this, googleSignInAccount);
我认为这确实是一种奇怪的行为