首页 > 解决方案 > 使用 AccountManager 进行 3rd 方服务

问题描述

我了解 AccountManager 需要什么,并且有点了解如何使用和实施它。但是,我还不清楚我是否可以使用它,如果我不拥有,甚至与我验证我的应用程序所用的服务相关联。我正在编写一个使用 REST 服务的应用程序,具有 OAuth2 授权。创建上述服务的公司不会将 AccountManager 用于他们自己的应用程序。

StackOverflow 的建议实际上找到了一个类似的问题,但它的答案真的晚了,而且我没有任何迹象表明它是正确的。

标签: androidaccountmanager

解决方案


这个决定不太取决于服务是由您还是任何第三方运行。

拥有 Authenticator 只有两个(强有力的)原因:

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

  2. 如果要让其他应用程序选择使用您的身份验证器使用此服务进行身份验证。通常只有当您是服务运营商时才会出现这种情况。

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

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


推荐阅读