Я пытаюсь использовать AccountManager, чтобы получить токен для установленной учетной записи Google. Когда я вызываю getResult() для своего объекта AccountManagerFuture, я получаю на устройстве экран «Не удалось войти» (который далее говорит: «Была проблема при обмене данными с серверами Google. Повторите попытку позже). Я проверил, что сетевое подключение доступно до вызова этого метода. Я также проверил устройство, к которому у меня есть доступ, например google.com, в браузере. Вот код для моего AccountManagerCallback:
amf = accMgr.getAuthToken(account, authTokenType, null, true,
new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> arg0) {
Bundle result;
Intent i;
String token;
try {
result = arg0.getResult();
if (result.containsKey(AccountManager.KEY_INTENT)) {
i = (Intent)result.get(AccountManager.KEY_INTENT);
if (i.toString().contains("GrantCredentialsPermissionActivity")) {
// Will have to wait for the user to accept
// the request therefore this will have to
// run in a foreground application
cbt.startActivity(i);
} else {
cbt.startActivity(i);
}
token = (String)result.get(AccountManager.KEY_AUTHTOKEN);
} else {
token = (String)result.get(AccountManager.KEY_AUTHTOKEN);
}
} catch (OperationCanceledException e) {
e.printStackTrace();
} catch (AuthenticatorException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}, handler);
Кроме того, могут быть полезны следующие записи в LogCat:
08-02 15:51:00.911: I/GLSUser(10134): GLS error: Unknown [email protected] com.google
08-02 15:51:00.911: V/GoogleLoginService(10134): Returning error intent with: ComponentInfo{com.google.android.gsf.login/com.google.android.gsf.login.LoginActivity}
08-02 15:51:03.294: I/ActivityManager(324): START {cat=[[email protected]] flg=0x10000000 cmp=com.google.android.gsf.login/.LoginActivity (has extras) u=0} from pid 11147
(Примечание: фактическое имя учетной записи Gmail удалено во избежание спама.)
GoogleAuthUtil
. - person Victor Sergienko   schedule 19.09.2013