AccountManager教程

时间:2023-12-18 20:58:26

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アカウント

          //这里省略

}