我通过谷歌播放服务链接我的应用程序 - 驱动器api。工作正常,直到我尝试取消链接我的申请表用户的谷歌驱动器帐户。我找到了一种使用Plus API的方法,如
mApi = new GoogleApiClient.Builder(context)
.addApi(Drive.API)
.addApi(Plus.API)
.addScope(Drive.SCOPE_APPFOLDER)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
...
...
Plus.AccountApi.clearDefaultAccount(mApi);
mApi.disconnect();
但实际上这对我没什么帮助。当我重新链接到我的应用程序谷歌驱动器时,帐户选择意图没有显示出来。 (我的帐户未激活Google Plus服务!)
还有其他方法可以将应用与谷歌驱动器取消关联。我想知道为什么Drive :: DriveApi :: clearDefaultAccount不存在?
修改:
好吧,作为一种解决方法;
mApi.clearDefaultAccountAndReconnect();
mApi.disconnect();
这将清除身份验证数据,而mApi.disconnect()不允许重新连接...我仍然想知道是否有任何优雅的解决方案...
答案 0 :(得分:3)
如您所见,方法clearDefaultAccount()
已弃用,已替换为clearDefaultAccountAndReconnect()
。
方法clearDefaultAccountAndReconnect()
会移除您应用的Google Play服务中设置的默认帐户。对connect()
的后续调用将返回一个解析意图,让用户选择其他帐户。
如果用户选择相同的帐户,则不会同意,因为未撤销对该应用的访问权限。用户还应该选择使用revokeAccessAndDisconnect(GoogleApiClient)
撤消访问权限。
您可以在链接中找到更多信息:https://developer.android.com/reference/com/google/android/gms/plus/Account.html
希望它有所帮助。