我对此问题进行了很多调查,现在已经连续三天困扰着我,我认为我需要从侧面查看。
您可以单击图像以查看其完整版。
我的问题是-我希望每次使用GoogleSignInClient登录时都会出现Google Play游戏帐户选择器。但是现在,当我使用Google Play Games范围登录时,会显示同意窗口:
如果我按允许,它将在某个地方缓存我的个人资料,而下次我按登录时,它不会问我任何问题,只是用默认帐户。即使我在此之前致电 GoogleSignInClient.signOut()。使同意窗口再次出现的唯一方法是在登录前调用 GoogleSignInClient.revokeAccess()。
但是,如果我从此处https://github.com/playgameservices/android-basic-samples(例如ButtonClicker)运行任何Google示例,则在按下登出后,每次我按下登录按钮时,都会出现帐户选择器。强>。我不知道我的测试样本应用程序与那些样本之间有什么区别。我什至尝试使用较低版本的Google服务和Android SDK。
复制非常简单-只需制作一个基本的Android应用程序,但活动空着,然后点击两个按钮即可:登录和退出。当然,您需要配置Goole Play应用程序进行测试。代码在这里https://gist.github.com/glcoder/c2783ad8c99063fc12250b9e32620751
编辑:经过深入的分析(主要是从Google Samples中删除ButtonClicker的片段),我发现是什么触发了帐户选择器在下一次登录时显示-这行代码,称为right成功登录后:
Games.getGamesClient(MainActivity.this, googleSignInAccount);
我认为这确实是一种奇怪的行为。