帐户管理器在Android中返回0个帐户
我们已经建立了SDK,它有很多功能。在这里,我们试图在Android帐户中保存一些令牌和标识符 现在,我们观察到,当我们试图设置Account Manager类的UserData()或getUserData()方法时,Account Manager返回0个帐户帐户管理器在Android中返回0个帐户,android,account,accountmanager,Android,Account,Accountmanager,我们已经建立了SDK,它有很多功能。在这里,我们试图在Android帐户中保存一些令牌和标识符 现在,我们观察到,当我们试图设置Account Manager类的UserData()或getUserData()方法时,Account Manager返回0个帐户 Logger.getInstance().writeFile("AccountManagerUtil::: save::: string value::: Account Manager details:: "+mAc
Logger.getInstance().writeFile("AccountManagerUtil::: save::: string value::: Account Manager details:: "+mAccountManager.getAccounts().length);
mAccountManager.setUserData(mAccount, proxyKey(key),value == null ? "" : value);
String retValue = mAccountManager.getUserData(mAccount,proxyKey(key));
Logger.getInstance().writeFile("AccountManagerUtil::: save::: string value::: get user data::: "+retValue);
打印值如下所示:
2020-10-09 09:29:14.015 AccountManagerUtil::: save::: byte value::: Account Manager details:: 0
2020-10-09 09:29:14.016 AccountManagerUtil::: proxyKey::: keys:: api.next.b.br:443//msso.magIdentifier
2020-10-09 09:29:14.018 AccountManagerUtil::: save::: byte value::: set user data is completed
2020-10-09 09:29:14.018 AccountManagerUtil::: proxyKey::: keys:: api.next.b.br:443//msso.magIdentifier
2020-10-09 09:29:14.02 AccountManagerUtil::: save::: byte value::: get user data::: null
mAccountManager = AccountManager.get(MAS.getContext());
//Attempt to retrieve the account
Account[] accounts = mAccountManager.getAccountsByType(accountType);
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: no of accounts "+accounts.length);
for (Account account : accounts) {
if (accountName.equals(account.name)) {
String password = mAccountManager.getPassword(account);
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: account password "+password);
String savedPassword = identifier.toString();
if (password.equals(savedPassword)) {
mAccount = account;
}else {
// - case migration from old AccountManagerStoreDataSource
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: SharedStorageIdentifier ");
mAccount = null;
identifier = new SharedStorageIdentifier();
}
}
}
//Create the account if it wasn't retrieved,
if (mAccount == null) {
mAccount = new Account(accountName, accountType);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1)
{
mAccountManager.removeAccountExplicitly(mAccount);
}
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: adding account explicitly "+mAccount.name);
boolean bAcc_status = mAccountManager.addAccountExplicitly(mAccount, identifier.toString(), null);
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: adding account status "+bAcc_status);
}
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: getting account details:: Name:: "+mAccount.name+
" Type::" +mAccount.type+" hashcode:: "+mAccount.hashCode());
} catch (Exception e) {
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: shared storage exception "+e.getMessage());
throw new MASSharedStorageException(e.getMessage(), e);
}
我创建帐户的方式如下所示:
2020-10-09 09:29:14.015 AccountManagerUtil::: save::: byte value::: Account Manager details:: 0
2020-10-09 09:29:14.016 AccountManagerUtil::: proxyKey::: keys:: api.next.b.br:443//msso.magIdentifier
2020-10-09 09:29:14.018 AccountManagerUtil::: save::: byte value::: set user data is completed
2020-10-09 09:29:14.018 AccountManagerUtil::: proxyKey::: keys:: api.next.b.br:443//msso.magIdentifier
2020-10-09 09:29:14.02 AccountManagerUtil::: save::: byte value::: get user data::: null
mAccountManager = AccountManager.get(MAS.getContext());
//Attempt to retrieve the account
Account[] accounts = mAccountManager.getAccountsByType(accountType);
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: no of accounts "+accounts.length);
for (Account account : accounts) {
if (accountName.equals(account.name)) {
String password = mAccountManager.getPassword(account);
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: account password "+password);
String savedPassword = identifier.toString();
if (password.equals(savedPassword)) {
mAccount = account;
}else {
// - case migration from old AccountManagerStoreDataSource
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: SharedStorageIdentifier ");
mAccount = null;
identifier = new SharedStorageIdentifier();
}
}
}
//Create the account if it wasn't retrieved,
if (mAccount == null) {
mAccount = new Account(accountName, accountType);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1)
{
mAccountManager.removeAccountExplicitly(mAccount);
}
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: adding account explicitly "+mAccount.name);
boolean bAcc_status = mAccountManager.addAccountExplicitly(mAccount, identifier.toString(), null);
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: adding account status "+bAcc_status);
}
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: getting account details:: Name:: "+mAccount.name+
" Type::" +mAccount.type+" hashcode:: "+mAccount.hashCode());
} catch (Exception e) {
Logger.getInstance().writeFile("AccountManagerUtil::: constructor::: shared storage exception "+e.getMessage());
throw new MASSharedStorageException(e.getMessage(), e);
}
我的问题是,我哪里做错了。奇怪的行为是:
请帮忙。有人能帮我吗。。