【问题标题】:Signing out from Google Plus api从 Google Plus api 退出
【发布时间】:2014-10-18 19:48:14
【问题描述】:

我刚刚为我的应用集成了一个 Google+ 登录按钮。当您登录、授予访问权限并获取人员信息时,一切都会完美运行。但是,我感觉自己在执行此操作时存在一个巨大缺陷,这可能会阻止正常的 G+ 退出。

我有一个LoginActivity,我在其中创建了mGoogleApiClient 实例。一旦我进行登录检查并使用人员信息更新我的数据库和变量,我finish()LoginActivity 并转到我的MainActivity。这是用户可以选择退出的地方。

但是,我恐怕需要mGoogleApiClient 的同一个实例;但是当我完成LoginActivity 时,这被抹去了。所以我稍微修改了一些东西,并尝试将它作为静态变量存储在另一个Activity 中,我在其中全局使用了一些变量——extends Application,但它似乎没有退出。

我是在正确的道路上还是我需要以不同的方式做这件事?

【问题讨论】:

标签: java android static google-plus


【解决方案1】:

在您的新活动中,执行以下操作:

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

【讨论】:

  • 恕我直言,它正在创建一个新的 GoogleApiClient,我尝试像这样重新创建它并发生异常。
  • 它没有得到相同的实例,但你不需要相同的实例。您确实需要等到 mGoogleApiClient 连接。
  • 任何人都可以在登录 google 后帮助我,以及如何在登录后退出我需要的另一个活动,然后显示另一个活动,然后从该活动中退出,请帮助我
【解决方案2】:

您需要在 MainActivity 中再次连接到 google play 服务,并使用您在 LoginActivity 中的所有相同权限,以便您可以使用该实例退出

【讨论】:

  • 您不需要所有相同的权限。使用 Plus.API 连接的 GoogleApiClient 足以清除默认帐户或撤销访问权限。
  • @Hounshell 这有点正确,但是如果您在不同的活动中添加新权限,例如谷歌驱动器,您需要在访问 API 客户端之前解决登录问题,所以是的,您需要相同的权限说
  • “所有相同的权限”意味着一个子集是不够的。我可以建议像“没有用户尚未授予的任何权限”这样的措辞吗?
猜你喜欢
  • 1970-01-01
  • 2013-01-02
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-07
相关资源
最近更新 更多