我使用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);
}
}
編輯
我找到了解決自己:
在getAuthToken()方法,我改變了第三個參數爲true,因此它會顯示在狀態欄要求警告允許。我不知道爲什麼Android之前沒有問過,就像我安裝應用程序之後一樣。
你應該添加你的評論作爲你自己的問題的答案,而不是編輯! – 2011-06-09 01:56:36