Ung*_*viu 6 android facebook accountmanager
我正在尝试在AccountManager中添加一个新帐户(在Facebook登录+服务器验证之后).这种情况的流程如下:
问题
在第5点,peekAuthToken返回null但不应该因为我已经为该帐户设置了autToken.
码
public static Bundle handleUserLogin(Context context, User user) {
SharedPreferences mPrefs = context.getSharedPreferences(Constants.PREFS_NAME, Context.MODE_PRIVATE);
AccountManager am = AccountManager.get(context);
Account account = new Account(user.getEmail(), ACCOUNT_TYPE);
Account[] accounts = am.getAccountsByType(ACCOUNT_TYPE);
boolean isNewAccount = true;
for (int i = 0; i < accounts.length; i++) {
if (user.getEmail().equalsIgnoreCase(accounts[i].name) && ACCOUNT_TYPE.equalsIgnoreCase(accounts[i].type)) {
isNewAccount = false;
account = accounts[i];
break;
}
}
if (isNewAccount) {
am.addAccountExplicitly(account, user.getPassword(), null);
accounts = am.getAccountsByType(ACCOUNT_TYPE);
for (int i = 0; i < accounts.length; i++) {
if (user.getEmail().equalsIgnoreCase(accounts[i].name) && ACCOUNT_TYPE.equalsIgnoreCase(accounts[i].type)) {
account = accounts[i];
break;
}
}
}
if (null != user.getPassword()) {
am.setPassword(account, user.getPassword());
}
Cs.error(TAG, "account " + account + " token " + user.getToken());
am.setAuthToken(account, user.getToken(), Authenticator.AUTHTOKEN_TYPE_FULL_ACCESS);
setUserData(user, account, am);
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, user.getToken());
mPrefs.edit().putString(Constants.KEY_CURRENT_USER, account.name).commit();
return result;
}
Run Code Online (Sandbox Code Playgroud)
首先,我认为可能对我的新帐户的引用不正确(来自AccountManager的那个)所以我再次搜索帐户.
你能告诉我一些关于我做错了什么的指示,或者我应该如何确保为帐户设置authToken?
谢谢
我不会依赖于与AbstractThreadedAccountAuthenticator 的 getAuthToken()方法不同的显式设置 authToken 。我的猜测是,当您请求时 authToken 尚未缓存。
我建议仅通过AccountManager.addAccountExplicitly()创建帐户,并在真正需要时推迟访问 authToken。
在AbstractThreadedAccountAuthenticator 的 getAuthToken()中,我建议像我之前创建的项目一样应用逻辑。
希望这会对您有所帮助:
https://github.com/dawidgdanski/AccountAuthenticatorExample
| 归档时间: |
|
| 查看次数: |
2091 次 |
| 最近记录: |