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アカウント
//此处省略
}