AccountManager使用教程

本文深入解析了AccountManager类的功能,它提供了一种统一的方式管理不同在线服务的用户账户验证,简化了应用程序对接多个服务的流程。通过获取可用账户、验证账户信息及管理认证令牌等步骤,实现高效、安全的账号访问管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

     }

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值