我的程序在点击了 “账户与同步”----“添加账号”后,会调用一个手写的登录界面,在登录成功后,
会返回方法:
// 登陆成功后写入Authenticator的数据 by MengWeiqi
public void onLoginSuccess(String account, String pwd, String token) {
Account mAccount = new Account(account, getString(R.string.ACCOUNT_TYPE));
AccountManager am = AccountManager.get(mContext);
Bundle result = new Bundle();
result.putString(AccountManager.KEY_ACCOUNT_NAME, account);
result.putString(AccountManager.KEY_ACCOUNT_TYPE, getString(R.string.ACCOUNT_TYPE));
result.putString(AccountManager.KEY_AUTHTOKEN, token);
if (am.addAccountExplicitly(mAccount, pwd, result)) {
Log.i("log","66666666666666");
activity.setAccountAuthenticatorResult(result);
callBack(token);
}
}
以后如果想取到这个时候存进AccountManager里的token,该怎么办呢?
开始我试图尝试采用aManager.getAuthToken(account, authTokenType, notifyAuthFailure, callback, handler)
这个方法,但是这里面取得的结果是AccountManagerFuture<Bundle>类型的,其中的getResult()方法是虚函数,
不知道如何取得其中的值,有懂的高手可以指导我下,后来我采取了如下方法,成功取得:
String token = aManager.getUserData(accounts[0], AccountManager.KEY_AUTHTOKEN);