首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓AccountManagerFuture getResult在尝试获取授权令牌时会给IOEXcelption

安卓AccountManagerFuture getResult在尝试获取授权令牌时会给IOEXcelption
EN

Stack Overflow用户
提问于 2012-03-19 18:34:43
回答 2查看 1.4K关注 0票数 2

我正在跟随Nick example从一个谷歌账户获取授权令牌。调用AccountManagerFuture getResult时卡住了。我正在我的设备(HTC desire)上工作,并使用从Eclipse启动的本地google应用程序引擎。如果我用我的手机连接到互联网上,我就能得到一个身份验证令牌。但我想在本地离线。你知道我是不是应该连上互联网才能正常工作?如果不是,就不清楚getResult方法是做什么的。它会从某个google服务器检索令牌吗?谢谢。

代码语言:javascript
复制
@Override
protected void onResume() {
    super.onResume();
    Intent intent = getIntent();
    AccountManager accountManager = AccountManager.get(getApplicationContext());
    Account account = (Account)intent.getExtras().get("account");

    accountManager.getAuthToken(account, "ah", false, new GetAuthTokenCallback(), null);

}

private class GetAuthTokenCallback implements AccountManagerCallback<Bundle> {
    public void run(AccountManagerFuture<Bundle> result) {
        Bundle bundle;
        try {

            System.out.println("result.isCancelled"+result.isCancelled());
            // this prints false

                            System.out.println("result.isDone"+result.isDone());
            //this prints true


            bundle = result.getResult();
            // when getResult is called I get an IOException without further details

            Intent intent = (Intent)bundle.get(AccountManager.KEY_INTENT);
            if(intent != null) {
                    startActivity(intent);
            } else {
                onGetAuthToken(bundle);
            }
        } catch (OperationCanceledException e) {
            e.printStackTrace();
        } catch (AuthenticatorException e) {
            e.printStackTrace();
        } catch (IOException e) {

                e.printStackTrace();
        }
    }
};

03-19 13:58:03.933: W/System.err(1801):android.accounts.AccountManager.convertErrorToException(AccountManager.java:1419) 03-19 13:58:03.933: W/System.err(1801):at android.accounts.AccountManager.convertErrorToException(AccountManager.java:1419) 03-19 13:58:03.933: W/System.err(1801):at android.accounts.AccountManager.access$400(AccountManager.java:134) 03-19 13:58:03.933: W/System.err(1801):at java.io.IOException 03-19 13:58:03.933:w/system.err(1801):at android.accounts.AccountManager$AmsTask$Response.onError(AccountManager.java:1280) 03-19 13:58:03.933: W/System.err(1801):at android.accounts.IAccountManagerResponse$Stub.onTransact(IAccountManagerResponse.java:69) 03-19 13:58:03.933: W/System.err(1801):at android.os.Binder.execTransact(Binder.java:288) 03-19 13:58:03.933: W/System.err(1801):at dalvik.system.NativeStart.run(本地方法)

EN

回答 2

Stack Overflow用户

发布于 2012-05-15 05:25:49

我遇到了这个问题,这是因为我的wifi连接中断了。请确保您已连接到internet。

票数 2
EN

Stack Overflow用户

发布于 2013-06-21 18:59:20

您可能正在使用不支持google api的图像。确保使用Android SDK管理器并安装了google API,然后检查您的Android虚拟设备,以查看您是否正在使用google API作为目标

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9768650

复制
相关文章

相似问题

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