gpt4 book ai didi

android - 没有帐户选择对话框的 Google Plus GoogleApiClient connect()

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:16 25 4
gpt4 key购买 nike

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

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

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

但是,为了遵守 Google 服务条款,我还想提供一种方法(在不同的 Activity 中)让他们完全断开 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() 会导致立即失败,要求我调用解析 Intent ,这将弹出一个对话框,要求他们选择哪个帐户想用。

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

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

最佳答案

当然,我一发布这个我就偶然发现了答案。

对于任何好奇的人,这是您的操作方法:您只需向 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();

然后就可以了。

关于android - 没有帐户选择对话框的 Google Plus GoogleApiClient connect(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26221908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com