【问题标题】:Google Plus GoogleApiClient connect() without account selection dialog没有帐户选择对话框的 Google Plus GoogleApiClient connect()
【发布时间】:2014-12-01 01:08:59
【问题描述】:

我正在努力将 Google+ 登录功能集成到一个应用程序中,而且我现在大部分时间都在工作。按照此处的说明进行操作:

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

我能够添加“使用 Google 登录”按钮,集成来自 Play 服务的 GoogleApiClient,并允许用户登录到他们选择的 Google 帐户。

但是,为了遵守 Google 服务条款,我还想提供一种方法(在不同的活动中)让他们完全断开其 Google+ 帐户与应用的连接。根据此处的 Google 文档:

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

这是一个简单的问题,通过连接的GoogleApiClient 调用Plus.AccountApi.revokeAccessAndDisconnect()。问题是,这首先要求我有一个连接的GoogleApiClient

第一个链接中概述了获取此类对象的过程:使用GoogleApiClient.Builder 构建客户端对象,在其上调用connect(),并使用适当的回调来检测连接成功或失败。但是,如果用户的手机上有多个 Google 帐户,那么connect() 会导致立即失败,要求我调用解决意图,这将弹出一个对话框,要求他们选择他们想要使用的帐户。

但这不适用于这种情况,因为他们已经登录了 Google+,所以我应该已经知道要使用哪个帐户。请记住,此时,我需要做的就是创建一个GoogleApiClient 对象,并登录到他们之前登录的帐户,然后我可以将它传递给Plus.AccountApi.revokeAccessAndDisconnect()。但我不知道该怎么做。

我查看了文档并搜索了我能想到的每个单词组合来解释这个问题,但到目前为止我什么也没找到。有没有办法用特定帐户实例化GoogleApiClient,而不是要求用户从现有帐户列表中进行选择?或者,如果没有,是否有一些信息保存到首选项中,我可以访问这些信息以获取他们已经在我的应用中授权的帐户的令牌?

【问题讨论】:

    标签: android google-plus


    【解决方案1】:

    当然,当我发布此内容时,我偶然发现了答案。

    对于任何好奇的人,您可以这样做:您只需在 GoogleApiClient 构建器中再添加一个步骤;调用setAccountName() 方法来指定您要为其构建api 客户端对象的帐户。所以这个:

    mGoogleApiClient = new GoogleApiClient.Builder(this)
                           .addConnectionCallbacks(this)
                           .addOnConnectionFailedListener(this)
                           .addApi(Plus.API)
                           .addScope(Plus.SCOPE_PLUS_PROFILE)
                           .build();
    

    变成这样:

    mGoogleApiClient = new GoogleApiClient.Builder(this)
                           .addConnectionCallbacks(this)
                           .addOnConnectionFailedListener(this)
                           .addApi(Plus.API)
                           .addScope(Plus.SCOPE_PLUS_PROFILE)
                           .setAccountName(<gmail address>)
                           .build();
    

    然后它就起作用了。

    【讨论】:

    • 非常感谢我花了几个小时搜索这个方法!
    • 这拯救了我的一天!
    猜你喜欢
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-09
    • 2019-04-11
    • 2016-04-14
    • 1970-01-01
    相关资源
    最近更新 更多