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,则应加载数据,完整代码对于其他建议是必需的。

+0

我正在处理碎片。这有什么不同吗? –

+0

我不这么认为,否则发布完整代码 –

+0

问题解决了。其实我是删除帐户在哪里。我的坏,谢谢 –