Я реализовал свой аутентификатор AccountManager, службу и все остальное, и, похоже, все работает нормально.
Однако есть одна небольшая проблема: я хочу, чтобы в диспетчере учетных записей существовала только одна учетная запись для моего приложения, но, похоже, не могу найти способ ограничить это.
Единственное мое решение - выполнить поиск и удалить текущие учетные записи (по типу) перед добавлением новой учетной записи?
Мой текущий код:
private void removeAccounts()
{
Account [] accounts = mAcctMgr.getAccountsByType (mAccountType);
if (accounts.length == 0) return;
final Handler handler = new Handler ();
AccountManagerCallback<Boolean> callback = new AccountManagerCallback<Boolean>()
{
@Override
public void run(AccountManagerFuture<Boolean> arg0)
{
// nada
}
};
for (Account a : accounts) {
mAcctMgr.removeAccount (a, callback, handler);
}
}
Я ни в коем случае не называю это элегантным решением, но на данный момент вроде единственное что работает.