Android 自定义身份验证:如何获取自定义用户数据值?
我有自定义验证器。 并输入如下所示的帐户信息:Android 自定义身份验证:如何获取自定义用户数据值?,android,android-authenticator,Android,Android Authenticator,我有自定义验证器。 并输入如下所示的帐户信息: 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 ac
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));
我做错了什么?退房。addAccountExplicit
存在已知问题。在使用创建帐户后,传递一个空捆绑包并设置值,而不是在捆绑包中传递值
IIRC,问题是帐户管理器服务代码中的缓存问题。如果您删除一个帐户并立即重新创建同一个帐户,则中的用户数据缓存不会使用包中传递的值填充。使用setUserData
可以解决此问题。请签出。addAccountExplicit
存在已知问题。在使用创建帐户后,传递一个空捆绑包并设置值,而不是在捆绑包中传递值
IIRC,问题是帐户管理器服务代码中的缓存问题。如果您删除一个帐户并立即重新创建同一个帐户,则中的用户数据缓存不会使用包中传递的值填充。使用
setUserData
可以解决这个问题。谢谢!我不知道这个错误。你能提供一个实际错误的链接吗?对不起,我不能。我从来没有搜索过bug报告,也没有提交过bug报告。我的发现很模糊,无法创建一个证实的bug报告。然而,我们从未在setUserData
中看到过类似的问题。谢谢!我不知道这个错误。你能提供一个实际错误的链接吗?对不起,我不能。我从来没有搜索过bug报告,也没有提交过bug报告。我的发现很模糊,无法创建一个证实的bug报告。然而,我们从来没有在setUserData
中看到过这样的问题。