私はgetAuthToken()
を使ってトークンを取得してから、Google App Engineアプリケーションにログインします。Android getAuthTokenがnullを返す
今日まで、私はなぜgetAuthToken()
がnull
を返すのか分かりませんでした。
アカウントを確認しましたが問題ありません。だから私は何が起こっているのか想像できません。
private class GetAuthTokenTask extends AsyncTask<Account, Object, String> {
String TAG="GetAuthTokenTask";
@Override
protected String doInBackground(Account... accounts) {
AccountManager manager = AccountManager.get(getApplicationContext());
Account account = accounts[0];
String token = this.buildToken(manager, account);
manager.invalidateAuthToken(account.type, token);
return this.buildToken(manager, account);
}
private String buildToken(AccountManager manager, Account account) {
try {
AccountManagerFuture<Bundle> future = manager.getAuthToken (account, "ah", false, null, null);
Bundle bundle = future.getResult();
System.out.println("Token: "+bundle.getString(AccountManager.KEY_AUTHTOKEN) +"\n");
return bundle.getString(AccountManager.KEY_AUTHTOKEN);
} catch (OperationCanceledException e) {
Log.w(TAG, e.getMessage());
} catch (AuthenticatorException e) {
Log.w(TAG, e.getMessage());
} catch (IOException e) {
Log.w(TAG, e.getMessage());
}
return null;
}
protected void onPostExecute(String authToken) {
//Log.i("onPostExecute","GetCookieTask");
new GetCookieTask().execute(authToken);
}
}
編集
私は解決策自分自身が見つかりました:それが求めてステータスバーに警告が表示されますので、私は、trueに三番目のパラメータを変更しgetAuthToken()メソッドでは
を許可。私はアプリケーションをインストールした直後のように、なぜAndroidが以前に尋ねなかったのか分かりません。
編集するのではなく、自分の質問への回答としてコメントを追加する必要があります。 –