我按照下面的链接在我的android应用程序中实现了一个"注销"按钮,该应用程序使用Google API客户端。然而,在再次连接googleapi时,用户不会看到帐户选择器。她/他最初选择的价值似乎仍在某种程度上被缓存。我已经想了好几个小时了。
欢迎任何想法。非常感谢。
https://developers.google.com/+/移动/安卓/登录
if (mGoogleApiClient.isConnected()) {
Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
mGoogleApiClient.disconnect();
}
我在使用clearDefaultAccount和尝试重新连接时遇到了很多问题。最后,我决定使用AccountPicker类(顺便说一句,它不需要清单中的全局权限)来分离帐户选择过程。
因此,当用户想要连接时,始终显示AccountPicker,然后使用所选帐户来构建您的GoogleApiClient(请参阅GoogleApiCustomer.Builder中的.setAccountName)。
现在一切顺利。
这对我有效-使用revoke删除谷歌客户端中的所有数据:
public void logout()
{
if (mPlusClient.isConnected())
{
Plus.AccountApi.clearDefaultAccount(mPlusClient);
Plus.AccountApi.revokeAccessAndDisconnect(mPlusClient);
}
}
之后,如果您尝试再次登录,您将再次看到一个帐户选择器
您没有收到账户选择器,因为您没有调用
重新连接后的mGoogleApiClient.connect()
。