【问题标题】:User Sign-out: clearing the default Google account does not cause the account picker to show up in Android app用户注销:清除默认 Google 帐户不会导致帐户选择器出现在 Android 应用中
【发布时间】:2014-10-20 00:56:01
【问题描述】:

我按照下面的链接在我的 Android 应用程序中实现了一个“退出”按钮,该应用程序使用了一个 Google API 客户端。但是,再次连接 google api 时,不会向用户显示帐户选择器。看起来她/他最初选择的价值可能仍以某种方式被缓存。几个小时以来,我一直在尝试解决这个问题。

非常欢迎任何和所有的想法。谢谢。

https://developers.google.com/+/mobile/android/sign-in

if (mGoogleApiClient.isConnected()) {
  Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
  mGoogleApiClient.disconnect();
}

【问题讨论】:

    标签: android google-api google-api-java-client google-api-client google-app-engine


    【解决方案1】:

    我在使用 clearDefaultAccount 并尝试重新连接时遇到了很多问题。最后,我决定使用 AccountPicker 类(顺便说一下,它不需要清单中的全局权限)来分离帐户选择过程。

    因此,当用户想要连接时,请始终显示 AccountPicker,然后使用选定的帐户来构建您的 GoogleApiClient(请参阅GoogleApiClient.Builder 中的 .setAccountName)。

    现在一切顺利。

    【讨论】:

    • 感谢 jmart,所以您不知道潜在的问题可能是什么,即可能是已知的谷歌提交的错误报告等?
    • 不,我搜索过,但找不到任何相关信息。我发现的唯一一件事是很多人在使用这些 api 时遇到了问题。我想这些客户端需要更多的迭代才能让它们更好地工作。
    • 谢谢,对这些事情感到沮丧,您的解决方法非常有意义,但我想我们现在已经坚定地处于外部 API 永远不会符合某些最低标准的世界......我们不是在谈论这里的功能模糊,这是基本的注销,谷歌正在努力推动他们的 G+ 东西。可悲的是,这些天我们都在快速迭代和推出东西,我想总比永远坚持完美的产品/咆哮要好
    • 非常有帮助,您注意到AccountPicker 不需要GET_ACCOUNTS 权限。
    【解决方案2】:

    这对我有用 - 使用 revoke 删除谷歌客户端中的所有数据:

    public void logout()
    {
        if (mPlusClient.isConnected())
        {
            Plus.AccountApi.clearDefaultAccount(mPlusClient);
            Plus.AccountApi.revokeAccessAndDisconnect(mPlusClient);
        }
    }
    

    之后,如果您再次尝试登录,您将再次看到一个帐户选择器

    【讨论】:

    • 是的,直到它不起作用。它不可靠,相同的代码有时可以工作,有时不能......不过感谢您的评论。
    • 感谢您的信息。到目前为止为我工作。您是否找到了可靠的解决方案?也许它在旧版本中不起作用,但现在可以?
    • 不是真的,它在我的清单上,尽管接受的答案是我计划最终做的。诚然,我没有机会使用最新的 API 进行测试,所以这可能已经修复!这个长周末我会花点时间编码:)
    • 好的,谢谢您的信息。我上周刚刚使用它,就个人而言,在我自己的手机上,我还没有看到该解决方案有任何问题
    【解决方案3】:

    因为您没有打电话,所以没有向您显示帐户选择器

    mGoogleApiClient.connect()重新连接后。

    【讨论】:

    • 感谢您的评论,但事实并非如此,我的问题正是在随后的#connect 调用中,我有时(相当一致地)没有弹出窗口。
    猜你喜欢
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多