2012-03-19 3 views
2

Я следую Nick example при получении токена авторизации из учетной записи google. Я застреваю при вызове AccountManagerFuture getResult. Я работаю над своим устройством (желание HTC) и с локальным движком Google, запущенным с Eclipse. Если я подключусь к Интернету с помощью своего мобильного телефона, я могу получить токен аутентификации. Но я бы хотел сделать это локально. Знаете ли вы, должен ли я подключиться к Интернету, чтобы он работал? Если нет, неясно, что делает метод getResult. Вызывает ли он токен с сервера google? Спасибо.Android AccountManagerFuture getResult дает IOEXcelption при попытке получить токен авторизации

@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: Вт/System.err (1801): java.io.IOException 03-19 13: 58: 03,933: Вт/System.err (1801): в 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 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.execTra nsact (Binder.java:288) 03-19 13: 58: 03.933: W/System.err (1801): at dalvik.system.NativeStart.run (родной метод)

ответ

2

У меня была эта проблема, и это был вызван тем, что мое соединение wifi скончалось. Убедитесь, что вы подключены к Интернету.

0

Возможно, вы используете изображение, которое не поддерживает google api. Убедитесь, что с помощью Android SDK manager установлен API Google, а затем проверьте Android-устройство Android, чтобы убедиться, что вы используете API Google в качестве цели.

Смежные вопросы