AccountManager使用教程

时间:2021-10-30 16:57:47

API解读

这个类给用户提供了集中注冊账号的接口。用户仅仅要输入一次账户password后,就能够訪问internet资源。

不同的在线服务用不同的方式管理用户,所以account manager 为不同类型的账户提供了统一验证管理的方法,处理有效的账户的具体信息而且实现排序。比方Google,Facebook,Microsoft Exchange 各自有他们的验证方法。

非常多server支持一些验证算法,能够不须要发送用户password验证是否正确。AccountManager能够为应用生成tokens,这样应用就不须要直接处理password。tokens是能够被复用的而且由AccountManager缓存,可是必须周期性的刷新。应用程序必须在停止工作时丢弃tokens以便让AccountManager知道须要又一次生成tockens。

AccountManager使用步骤:(carrrimail 代码演示样例)

第一,获得AccountManager 的实例

AccountManager.get(context)

第二,使用getAccountsByType(String)getAccountsByTypeAndFeatures(String,
String[], AccountManagerCallback, Handler)
获得可用的账户

Account[] accounts = AccountManager.get(context).getAccountsByType(

                "com.google");

//carrimail 中须要获得gmail的账户在此传入"com.google"

第三,假设应用程序使用了一个之前记住的账户信息,必须确保这个账户在getAccountsByType(String)返回的结果集中,假设使用了一个已经不在设备上的账户会抛出一个undefined异常。

第四,在使用getAuthToken(Account,
String, Bundle, Activity, AccountManagerCallback, Handler)
或者其它方法获取选中账户的auth token时,查看相关文档了解确切的使用方法以及异常处理的方法。

第五,假设请求失败报 authentication error,这许是缓存的auth token过期了,须要调用invalidateAuthToken(String, String)方法。

遍历获得的accounts信息

for (Account account : accounts) {

            String name = account.name; // メールアドレス

            // Googleアカウント

          //此处省略

}