Android:AccountManager返回空即使登录后,当按下或应用程序重新启动
问题描述:
我是新来的android,但最近面临问题。 在登录按钮按下时,账户管理器被填入这样的账户详情。Android:AccountManager返回空即使登录后,当按下或应用程序重新启动
AccountManager mAccountManager;
final Account account = new Account(mUsername, Constant.ACCOUNT_TYPE);
mAccountManager.addAccountExplicitly(account, token, null);
ContentResolver.setSyncAutomatically(account,
ContactsContract.AUTHORITY, true);
但回来后按下或我重新启动应用程序后,当我想看到从帐户详细信息:
accountManager = AccountManager.get(applicationController.getCurrentActivity());
accounts = accountManager.getAccountsByType(packageName);
帐户返回[0],即什么是它。 请帮我一把。
onAuthenticationResult(字符串,字符串)函数调用finishlogin其中存储帐户信息,
public void onAuthenticationResult(String error, String token) {
// Hide the progress dialog
// hideProgress();
if (token != null && !"".equalsIgnoreCase(token)) {
{
finishLogin(token);
CommonMethods.getInstance().showAppMsg(
"Registered Successfully.");
}
}
这里是finishLogin函数,它接受一个令牌,并将其与用户名存放在客户经理
protected void finishLogin(String token) {
account = new Account(mUsername, Constant.ACCOUNT_TYPE);
if (mRequestNewAccount) {
mAccountManager.addAccountExplicitly(account, token, null);
// Set contacts sync for this account.
ContentResolver.setSyncAutomatically(account,
ContactsContract.AUTHORITY, true);
} else {
mAccountManager.setPassword(account, mUsername);
}
if (Constant.isCampaign) {
keyarr = new String[] { "token", "imei", "deviceid", "osversion",
"modal", "screen_width", "screen_height", "manufacturer",
"simcountrycode", "simoperator", "phonetype",
"networktype", "gcmregid", "device_type", "app_version",
"download_source", "api_version" };
valuearr = new String[] { token, imei, androidId,
String.valueOf(softwareversion), PhoneModel,
String.valueOf(divwidth), String.valueOf(divheight),
PhoneMANUFACTURER, simcountrycode, simoperator, phonetype,
networktype, Constant.NEWGCM_REGD_ID, "ANDROID",
"" + Constant.version, "" + Constant.DOWNLOAD_SOURCE,
"" + Constant.API_VERSION };
} else {
keyarr = new String[] { "token", "imei", "deviceid", "osversion",
"modal", "screen_width", "screen_height", "manufacturer",
"simcountrycode", "simoperator", "phonetype",
"networktype", "gcmregid", "device_type", "app_version",
"api_version" };
valuearr = new String[] { token, imei, androidId,
String.valueOf(softwareversion), PhoneModel,
String.valueOf(divwidth), String.valueOf(divheight),
PhoneMANUFACTURER, simcountrycode, simoperator, phonetype,
networktype, Constant.NEWGCM_REGD_ID, "ANDROID",
"" + Constant.version, "" + Constant.API_VERSION };
}
signUpScreenModel.WriteDeviceInfo(keyarr, valuearr);
applicationController.handleEvents(
ApplicationEvents.EVENT_ID_HOME_FRAGMENT, false);
}
答
你必须检查在onResume()方法中主要活动中记录的帐户如果返回true,则应加载数据,完整代码对于其他建议是必需的。
我正在处理碎片。这有什么不同吗? –
我不这么认为,否则发布完整代码 –
问题解决了。其实我是删除帐户在哪里。我的坏,谢谢 –