如何通过 Google 帐户在 Android 中使用 AccountManager?

Posted

技术标签:

【中文标题】如何通过 Google 帐户在 Android 中使用 AccountManager?【英文标题】:How can I use AccountManager in Android with Google Account? 【发布时间】:2011-10-29 09:54:54 【问题描述】:

我想在 android 中使用 AccountManager 来验证 com.google 帐户。我已经知道如何获取帐户,但我有几个问题,

    如果账户不在AccountManager中,而自己的账户在com.google域下,如何添加呢? AccountManager 如何管理令牌?它会自动检索令牌,还是我需要手动检索? 我正在尝试将 Google Reader API 与 ClientLogin 一起使用,那么我第一次可能需要密码。如果某些 com.google 帐户之前已被其他应用存储,我可以使用它们来获取密码吗?

编辑于 2011.08.20

为了澄清这个问题,我想问这个,

    Android 上的 Google 应用程序有自己的例程来验证 Google 帐户,我想知道是否可以调用 Google 应用程序创建的例程并获得我自己的权限? 如果 Android 手机上没有 Google 帐户,如何添加帐户,以后 Google 应用程序会接受该帐户?

【问题讨论】:

您能否详细说明“验证 com.google 帐户”?不太清楚你的意思。 阅读这个问题和答案时我有点困惑,但下一个链接真的很有帮助。所以对于仍然关心的人:code.google.com/apis/tasks/articles/… 【参考方案1】:

如果账户不在AccountManager中,而自己的账户在com.google域下,那如何添加呢?

例如,如果您只想拥有一个让用户添加 Google 帐户的按钮,请考虑调用 ADD_ACCOUNT 意图。另一个更高级的选项是使用AccountManager.addAccount。

AccountManager 如何管理代币?它会自动检索令牌,还是我需要手动执行?

系统管理令牌。好吧,实际上,应用程序注册了“身份验证器”,它们为相应的服务管理令牌。大多数 Android 设备都预装了 Google 帐户的身份验证器,而 Twitter 等第三方应用程序在安装时会添加自己的身份验证器。想要使用 Google 帐户的应用可以使用 AccountManager.getAuthToken 请求身份验证令牌。

我正在尝试将 Google Reader API 与 ClientLogin 一起使用,那么我第一次可能需要密码。如果某些 com.google 帐户之前已被其他应用程序存储,我可以使用它们来获取密码吗?

您的应用绝不应要求用户提供她的 Google 密码。使用相关的 AccountManager 方法为 Reader 请求身份验证令牌。不幸的是,由于 Google Reader 没有公共 API,我无法提供进一步的帮助。

【讨论】:

感谢您的回复,这很有帮助,但我仍然遇到问题。实际上,对于谷歌制作的应用程序,他们有相同的程序来进行身份验证。如何从我的应用中调用该例程? 这种方法或类似 OAuth 的方法是唯一推荐的为 Google 帐户获取身份验证令牌的方法。

以上是关于如何通过 Google 帐户在 Android 中使用 AccountManager?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 google plus 帐户中注销 google plus 在 android 中的集成

如何记住登录 Google 帐户 Android

如何通过用于下载应用程序的 Google Play 商店帐户获取 Firebase 用户?

空指针异常 - Android 中 Google 帐户的 GoogleAuthUtil 身份验证

Android 中多个 Google 数据 API 的单个 google 帐户 authtoken

使用来自 android 的 google/gtalk 帐户