AccountManager教程

摘要:
AccountManager能够为应用生成tokens,这样应用就不须要直接处理password。tokens是能够被复用的而且由AccountManager缓存。应用程序必须在停止工作时丢弃tokens以便让AccountManager知道须要又一次生成tockens。AccountManager使用步骤:第一。假设请求失败报authenticationerror,这许是缓存的authtoken过期了。

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

}

免责声明:文章转载自《AccountManager教程》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LabView培训“Adobe Flash Player因过期而遭到阻止”的解决办法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C++20新特性

C++20新特性 新增关键字(keywords) concept requires constinit consteval co_await co_return co_yield char8_t 模块(Modules) 优点: 1)没有头文件; 2)声明实现仍然可分离, 但非必要; 3)可以显式指定导出哪些类或函数; 4)不需要头文件重复引入宏 (incl...

使用JNotify 监控文件变化

原文:https://blog.csdn.net/meteorsshower2013/article/details/80937725 其他参考文章:https://www.iteye.com/blog/cybrc-1900042                          https://zhuanlan.zhihu.com/p/152229305...

springmvc 整合 netty-socketio

1 maven <dependency><groupId>com.corundumstudio.socketio</groupId><artifactId>netty-socketio</artifactId><version>1.7.12</version></de...

Haskell语言学习笔记(23)MonadReader, Reader, ReaderT

MonadReader 类型类 class Monad m => MonadReader r m | m -> r where ask :: m r ask = reader id local :: (r -> r) -> m a -> m a reader :: (r -> a)...

selenium 难定位元素,时间插件,下拉框定位,string

1.元素定位 ID定位元素: findElement(By.id(“”)); 通过元素的名称定位元素: findElement(By.name(“”)); 通过元素的html中的位置定位元素: findElement(By.xpath(“”)); 通过元素的标签名称定位元素: findElement(By.tagName(“”)); 通过元素的链接名称...

使用C++ 实现的 websocket 客户端 (基于easywsclient)

直接上代码 easywsclient.hpp #ifndef EASYWSCLIENT_HPP_20120819_MIOFVASDTNUASZDQPLFD #define EASYWSCLIENT_HPP_20120819_MIOFVASDTNUASZDQPLFD // This code comes from: // https://github.co...