AccountManager使用教程

来源:互联网 发布:淘宝天天特价报名 编辑:程序博客网 时间:2024/06/06 00:00

API解读

这个类给用户提供了集中注册账号的接口。用户只要输入一次账户密码后,就可以访问internet资源。

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

很多服务器支持一些验证算法,可以不需要发送用户密码验证是否正确。AccountManager可以为应用生成tokens,这样应用就不需要直接处理密码。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アカウント
          //此处省略

     }

原创粉丝点击