android - 使用 AccountManager 进行 3rd 方服务
问题描述
我了解 AccountManager 需要什么,并且有点了解如何使用和实施它。但是,我还不清楚我是否可以使用它,如果我不拥有,甚至与我验证我的应用程序所用的服务相关联。我正在编写一个使用 REST 服务的应用程序,具有 OAuth2 授权。创建上述服务的公司不会将 AccountManager 用于他们自己的应用程序。
StackOverflow 的建议实际上找到了一个类似的问题,但它的答案真的晚了,而且我没有任何迹象表明它是正确的。
解决方案
这个决定不太取决于服务是由您还是任何第三方运行。
拥有 Authenticator 只有两个(强有力的)原因:
如果要同步联系人或日历数据,则该帐户类型必须有一个身份验证器,否则您将无法同步它们。如果服务运营商在自己的应用中没有为服务提供任何 Authenticator,则需要自己实现。
如果要让其他应用程序选择使用您的身份验证器使用此服务进行身份验证。通常只有当您是服务运营商时才会出现这种情况。
如果您只想在自己的应用程序中对用户进行身份验证,则不必实现 Authenticator。如果服务运营商不提供 Authenticator 或者它在大多数设备上不可用,只需实现您自己的自定义身份验证模块或使用任何适合您需求的现有库。
无论如何,如果您愿意,您当然可以自由地实施 Authenticator。只需确保帐户类型是唯一的,并且不会与任何当前或未来的应用程序冲突。实现这一点的最简单和最常见的方法是添加应用程序的包名称,如下所示your.package.name.ACCOUNT
。
推荐阅读
- swift - 以编程方式清空 UIStackView
- javascript - 单击下拉菜单时如何不触发onBlur
- jenkins - 为什么这个脚本只在 Jenkins 上引起问题?
- java - Autowired/Dependencies 注入在 Spring Shell 项目中不起作用
- python - 为什么 __init__ 的 arglist 是元组而不是 Python 中的列表?
- reactjs - 如何在 React 应用程序中将现有的 pdf 转换为 html 元素
- oracle - 无法通过 MWAA 上的提供程序连接到 Oracle 数据库
- wpf - Powershell WPF RichTextBox Surpress Backspace 不起作用
- python - 使用 Regex 或 Pandas 从字符串中提取多个参数
- microservices - 将不带工作台的 DRL 资源添加到 Kieserver