嗨,我有問題恢復我的authToken當我打電話Android的客戶經理沒有緩存的authToken
mAccountManager.blockingGetAuthToken(Auth.getAccount(), Auth.AUTH_TOKEN_TYPE, true)
我得到一個空字符串,這使我看着我的AbstractAccountAuthenticator類,具體getAuth ()。下面是它做的:
public Bundle getAuthToken(AccountAuthenticatorResponse response,
Account account, String authTokenType, Bundle options)
throws NetworkErrorException {
final AccountManager am = AccountManager.get(mContext);
String authToken = am.peekAuthToken(account, authTokenType);
String uid = am.getUserData(account, AccountManager.KEY_CALLER_UID);
// return bundle with authToken
if (!TextUtils.isEmpty(authToken)) {
final Bundle result = new Bundle();
result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
result.putString(AccountManager.KEY_AUTHTOKEN, authToken);
result.putString(AccountManager.KEY_CALLER_UID, uid);
return result;
}
return null;
}
的peekAuthToken返回一個空,但我正在從getUserData正確uid
這使我相信我正確添加的帳戶。這是我如何設置authToken:
mAccountManager.addAccountExplicitly(account, accountPassword, extraData);
//The addAccount is working, and I can obtain the extraData in getAuth
mAccountManager.setAuthToken(account, Auth.AUTH_TOKEN_TYPE, authtoken);
//I assume this is where the authToken is to be cached…but I can't retrieve it…
//The token does exist at this point
有什麼建議嗎?
您確定傳遞的賬戶變量與調用setAuthToken時的賬戶變量相同嗎? – CChi 2014-08-28 22:57:19
我相信是這樣的,Auth.getAccount()返回AccountManager.get(App.getContext())。getAccountsByType(ACCOUNT_TYPE)[0];它正確地保存有關帳戶的信息 – AIntel 2014-08-28 23:06:18
我無法真正弄清楚看看這段代碼片段會發生什麼。但你可以查看這個鏈接accountmanager的完整覆蓋。 http://udinic.wordpress.com/2013/04/24/write-your-own-android-authenticator/ – CChi 2014-08-28 23:54:20