Я следую Пример ник при получении токена авторизации из аккаунта Google.
Я застреваю при вызове AccountManagerFuture getResult. Я работаю на своем устройстве (HTC desire) и с локальным движком приложений Google, запущенным из Eclipse. Если я подключусь к Интернету с помощью своего мобильного телефона, я смогу получить токен аутентификации. Но я хотел бы сделать это локально в автономном режиме. Вы знаете, должен ли я подключиться к Интернету, чтобы он заработал?
Если нет, то не ясно, что делает метод getResult. Получает ли он токен с сервера Google где-нибудь?
Спасибо.
@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): java.io.IOException
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): на android.accounts.AccountManager.access $ 400 (AccountManager.java:134)
03-19 13: 58: 03.933: W / System.err (1801): на android.accounts.AccountManager $ AmsTask $ Response.onError (AccountManager.java:1280)
03-19 13: 58: 03.933: W / System.err (1801): на android.accounts.IAccountManagerResponse $ Stub.onTransact (IAccountManagerResponse.java:69)
03-19 13: 58: 03.933: W / System.err (1801): на android.os.Binder.execTransact (Binder.java:288)
03-19 13: 58: 03.933: W / System.err (1801): at dalvik.system.NativeStart.run (собственный метод)