【问题标题】:How to get Google Play Services currently connected account?如何获取当前连接的 Google Play Services 帐号?
【发布时间】:2016-01-25 10:46:53
【问题描述】:

许多 Google 应用程序允许您在 Google 帐户之间切换并显示当前连接的帐户。

例如 Google Fit、Gmail、Google+ 等...

从我在谷歌客户端调用.connect()并进入循环的代码来看

  • 连接失败
  • 启动自动分辨率
  • 获取活动结果
  • 重试连接

直到我最终连接。

这在很多地方都有记录,例如:https://developers.google.com/android/guides/api-client

在 UX 方面,用户会看到多个对话框,每次都询问不同的内容。

其中一个对话框要求在手机上可用的帐户之间选择一个帐户(如果只配置了一个帐户,它可能会自动解决而无需用户交互)。

如何查询 Google 客户端以了解当前连接的帐户?

我在任何地方都没有找到关于它的文档。

我发现的最接近的是: https://developers.google.com/android/reference/com/google/android/gms/common/AccountPicker

但我没有创建选择器,它完全由 Play Services 在我上面描述的过程中处理。

【问题讨论】:

  • 这些故障是否发生在 Google 应用中?或者您想知道身份验证在后端是如何工作的?
  • 我的问题不是已经回答了你的问题了吗?它是 Android 谷歌播放服务。您连接 Google 客户端。在连接过程中,会要求用户提供要使用的帐户。我发现无法知道用户选择了哪个帐户并且我需要它。

标签: android google-play-services


【解决方案1】:

您必须使用 Google Plus API 请求 Account 资源。

在清单中添加以下权限:

<uses-permission android:name="android.permission.GET_ACCOUNTS" />

然后使用this API 获取当前登录的账号。

编辑(处理评论):

.builder 中添加登录范围,如the example 所示,并启动 G+ Api。由于您不需要社交范围,因此此范围将使您能够访问当前经过身份验证的用户信息。
通过构建器setAccountName 后,您可以随时通过getAccountName 访问该用户的帐户资源。

编辑 2:

因此,对于上次编辑没有解决 G+ 上下文问题,我们深表歉意。

Here 是简单的 Google 登录(身份平台)中的一个类,可让您访问帐户资源。
更多信息在official documentation

【讨论】:

  • 谢谢!我目前没有时间回到我需要这个的项目,但我会尽快尝试。
  • 您好,Google Play 服务 8.1.0 或 8.3.0 版中没有这样的 com.google.android.gms.plus.Account。此外,这与 Google+ 帐户有关。这与 Google+ 无关。我说的是 Google 帐户。
  • 我收回了第一部分,Android Studio 有问题,不知何故没有让我看到 plus 包。我测试了它。我给了我连接帐户的电子邮件。但由于这是 Google+ API,如果它在不强制用户拥有 Google+ 帐户的情况下有效,我会徘徊。有参考吗?
  • 我已经编辑了我的回复以解决后面的评论。本质上,当用户拥有 Google 帐户时,它已经拥有与之关联的 G+ 资源,您只需通过 GoogleApiClient 启动并访问这些资源即可。请注意归因指南。 developers.google.com/+/mobile/android/sign-in
  • 这仍然没有告诉我用户是否需要 Google+ 来使用它。我不想强制使用 Google+ 登录。只需 Google 登录即可。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-01
  • 2016-11-21
相关资源
最近更新 更多