基于Android 4.2.2的Account Manager源代码分析学习:设备上帐号类型列表的获取

本文详细分析了Android 4.2.2系统中Account Manager如何获取设备上注册的帐户类型列表。从AuthenticatorDescription数组开始,涉及updateAuthDescriptions()、AccountManagerService、AccountAuthenticatorCache等关键步骤,阐述了系统如何展示支持的帐户类型列表,以及应用程序如何注册和管理帐户。
摘要由CSDN通过智能技术生成

获取系统中注册的帐号类型列表是一个典型的用例。比如,在系统设置界面中选择“添加帐户”,这是,系统显示一个所有支持的帐户类型的列表界面(ChooseAccountActivity)供用户点选。另外,在Contacts/Calendar等应用程序中,也会向系统请求创建帐户或者现实帐户列表。背后的操作是统一由Android Framework提供的。应用程序只要将设置好的intent发送出去即可。

在研究如何获取帐户类型列表之前,简要的描述一下,应用程序如何将一个帐号注册到系统中。这个注册过程包含一下的要素:

  • 扩展AbstractAuthenticator类。实质上,这是IAuthenticator接口的一个实现。
  • 创建一个Service,并且具备以下设定:
    • 持有一个authenticator实例
    • onBind()方法返回authenticator对应的IBinder
    • 包含authenticator的XML描述文件
    • Manifest中对应的Service声明中包含处理"android.accounts.AccountAuthenticator"的intent filter,以及指向authenticator描述文件的<meta-data>标记

那就从ChooseAccountActivity开始吧。

AuthenticatorDescription数组

AuthenticatorDescription定义了对authenticator的一个描述,包括类型、标签、图标等等,可以对等于应用程序中创建的authenticator描述文件中声明的内容。事实上,后者就是用来初始化一个AuthenticatorDescription的。

ChooseAccountActivity类持有一个AuthenticatorDescription类型的数组成员mAuthDescs,并且负责将其填满,具体操作在updateAuthDescript
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值