首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓AccountManager接口

安卓AccountManager接口
EN

Stack Overflow用户
提问于 2010-05-17 12:55:32
回答 1查看 1.8K关注 0票数 3

我正在努力理解Android AccountManager API。据我所知,我可以使用blockingGetAuthToken方法,并指定Android是否应该为用户提供允许或拒绝请求的通知。另一种可能是使用getAuthToken并检查是否返回KEY_INTENT。如果是这样的话,我可以开始一个新的活动,用户可以确认我的请求。

我的问题是,我想从服务中调用这两个方法中的一个。一旦用户做出决定,是否有机会获得回调?

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

发布于 2011-05-10 03:17:29

如果你想在用户做出决定后进行回调,最好使用异步版本:

代码语言:javascript
复制
AccountManager mgr = AccountManager.get(getApplicationContext());
Account[] accounts = mgr.getAccountsByType("com.mydomain");
// assert that accounts is not empty

您将希望使用AccountManagerFuture<Bundle>来保存身份验证令牌的结果。这必须是异步的,因为Android设备可能会要求用户同时登录:

代码语言:javascript
复制
private AccountManagerFuture<Bundle> myFuture = null;
private AccountManagerCallback<Bundle> myCallback = new AccountManagerCallback<Bundle>() {
    @Override public void run(final AccountManagerFuture<Bundle> arg0) {
        try {
           myFuture.getResult().get(AccountManager.KEY_AUTHTOKEN); // this is your auth token
       } catch (Exception e) {
           // handle error
       }
   }

}

现在,您可以异步请求auth令牌:

代码语言:javascript
复制
myFuture = mgr.getAuthToken(accounts[0], AUTH_TOKEN_TYPE, true, myCallback, null);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2846748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档