Запретить несколько учетных записей в AccountManager

Я реализовал свой аутентификатор 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);
    }
}

Я ни в коем случае не называю это элегантным решением, но на данный момент вроде единственное что работает.

12
задан vbence 26 March 2014 в 09:07
поделиться