我有自定义身份验证器。 并提供如下所示的帐户信息:
final AccountManager am = AccountManager.get(AuthActivity.this);
final Bundle result = new Bundle();
final Bundle userData = new Bundle();
userData.putString(KEY_NAME, mName);
userData.putString(KEY_EMAIL, mEmail);
Account account = new Account(mLogin, vcs.getAccountType());
if (am.addAccountExplicitly(account, null, userData)) {
result.putString(AccountManager.KEY_ACCOUNT_NAME, account.name);
result.putString(AccountManager.KEY_ACCOUNT_TYPE, account.type);
result.putString(AccountManager.KEY_AUTHTOKEN, mAccessToken);
result.putString(KEY_REFRESH_TOKEN, mRefreshToken);
am.setAuthToken(account, account.type, mAccessToken);
} else {
result.putString(AccountManager.KEY_ERROR_MESSAGE, "F@ck|n8 authenticator");
}
setAccountAuthenticatorResult(result);
setResult(RESULT_OK);
finish();
但是如何在需要时获取这些自定义值?
我试着这样做:
tvUsername.setText(accountManager.getUserData(account, AuthActivity.KEY_NAME));
tvEmail.setText(accountManager.getUserData(account, AuthActivity.KEY_EMAIL));
我做错了什么?
答案 0 :(得分:3)
结帐Android AccountManager.getUserData() returns null。 addAccountExplicitly
存在已知问题。在使用setUserData(Account, String, String)创建帐户后,传递空Bundle并设置值,而不是传递Bundle中的值。
setUserData
解决此问题。