Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 自定义身份验证:如何获取自定义用户数据值?_Android_Android Authenticator - Fatal编程技术网

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
中看到过这样的问题。