Java 从Google Plus api注销

Java 从Google Plus api注销,java,android,static,google-plus,Java,Android,Static,Google Plus,我刚刚为我的应用程序集成了一个Google+登录按钮。当您登录、授予访问权限并获取人员信息时,一切都会正常工作。然而,我有一种感觉,我在做这件事时有一个巨大的缺陷,可能会妨碍正确的G+注销 我有一个LoginActivity,在这里我创建了mgoogleapclient实例。一旦我进行了登录检查并用人员信息更新了我的DB和var,我就finish()登录活动并转到我的main活动。这是用户可以选择注销的地方 但是,我恐怕需要相同的mGoogleApiClient实例;但当我完成LoginActi

我刚刚为我的应用程序集成了一个Google+登录按钮。当您登录、授予访问权限并获取人员信息时,一切都会正常工作。然而,我有一种感觉,我在做这件事时有一个巨大的缺陷,可能会妨碍正确的G+注销

我有一个
LoginActivity
,在这里我创建了
mgoogleapclient
实例。一旦我进行了登录检查并用人员信息更新了我的DB和var,我就
finish()
登录活动并转到我的
main活动
。这是用户可以选择注销的地方

但是,我恐怕需要相同的
mGoogleApiClient
实例;但当我完成
LoginActivity
时,这些内容被删除了。所以我稍微修改了一些内容,并尝试将其作为静态变量存储在另一个
活动中,我在其中全局使用了一些变量--
扩展了应用程序
,但它似乎没有注销


我走的是正确的道路,还是需要以不同的方式来做

您需要在您的
main活动中再次连接到google play服务
,并使用您在
LoginActivity中拥有的所有相同权限
,以便您可以使用该实例在新活动中注销

,请执行以下操作:

GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(this)
        .addConnectionCallbacks(this)
        .addOnConnectionFailedListener(this)
        .addApi(Plus.API)
        .addScope(Plus.SCOPE_PLUS_LOGIN)
        .build();
mGoogleApiClient.connect();
// connect to current session

Plus.AccountApi.clearDefaultAccount(mGoogleApiClient);
// clear account
mGoogleApiClient.disconnect();
// disconnect

@Nambari不是针对Javascript的吗?它是oAuth和OpenID协议中固有的限制,不特定于任何编程语言。您可以使用应用程序控制器保存GoogleAppClient的确切实例,然后将其加载以从Google帐户注销。好的,我采用这种方法。创建一个保持打开状态的单例。让我们看看它是否有效…我想,如果它正在创建一个新的GoogleAppClient,我已经尝试像这样重新创建它,但出现了异常。它没有得到相同的实例,但您不需要相同的实例。您需要等待MGoogleAppClient连接。任何人都可以在登录google后帮助我,以及如何在登录后从我需要的另一个活动注销显示另一个活动,然后从该活动注销。请帮助我您不需要所有相同的权限。一个连接了Plus.API的GoogleAppClient就足以清除默认帐户或撤销访问权限。@Hounshell这在某种程度上是正确的,但是,如果您在不同的活动(例如google drive)中添加新权限,则在访问API客户端之前,您需要解决登录问题。因此,是的,您需要相同的权限。例如,“所有相同的权限”意味着子集不足。我可以建议用“没有用户尚未授予的任何权限”这样的措辞吗?