android - 使用 AccountManager 进行第三方服务

标签 android accountmanager

我了解需要 AccountManager 的用途,并且稍微了解如何使用和实现它。但是,我还不知道我是否可以正确使用它,如果我不拥有它,甚至与我用来验证我的应用程序的服务相关联。我正在编写一个使用 REST 服务的应用程序,具有 OAuth2 授权。创建上述服务的公司并未将 AccountManager 用于他们自己的应用。

StackOverflow 建议实际找到one similar question,但对它的回答真的晚了,而且我没有任何迹象表明它是正确的。

最佳答案

此决定不太取决于服务是由您还是任何第 3 方运行。

拥有身份验证器只有两个(强烈的)理由:

  1. 如果您想同步联系人或日历数据,则必须有帐户类型的身份验证器,否则您无法同步它们。如果服务运营商在自己的应用中没有为该服务提供任何 Authenticator,您需要自己实现。

  2. 如果想通过使用您的身份验证器为其他应用提供使用此服务进行身份验证的选项。通常只有当您是服务运营商时才会出现这种情况。

如果您只想在您自己的应用程序中对用户进行身份验证,则不必实现身份验证器。 如果服务运营商不提供 Authenticator 或者它在大多数设备上不可用,只需实现您自己的自定义身份验证模块或使用适合您需要的任何现有库。

无论如何,如果您愿意,您当然可以自由地实现 Authenticator。只需确保帐户类型是唯一的,并且不会与任何当前或 future 的应用程序冲突。实现此目的的最简单和最常见的方法是添加您的应用程序包名称,例如 your.package.name.ACCOUNT

关于android - 使用 AccountManager 进行第三方服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51525138/

相关文章:

android - ListView 在加载数据之前短暂显示空消息

android - 如何在 Android 中使用麦克风的强度? (嗓音)

java - 为什么不调用 AccountAuthenticator#getAuthToken()?

android - 如何使用 android 的客户管理器获取多个范围的授权 token

Android:在更新值之前删除 SharedPreference?

android - 使用 XML 布局时,我可以重写 View 的方法吗?

java - 使用显式 Intent 在两个 Activity 之间发送数据

java - Android 帐户管理器在设置中删除选项菜单

android - 将元数据添加到 Android Account/AccountManager

java - Android、AccountManager 和 OAuth