0

When my app starts, I'd like to ask my users either to create an Account or to choose from existing ones. I've implemented an Authenticator (extended AccountAuthenticatorActivity, AbstractAccountAuthenticator, made a Service) It seems to be working, I can create new Accounts from Settings/Accounts.

When I start an AccountPicker, I get a list of already created Accounts. When I click Add acccount it shows up my Account creation Activity. But when I'm done with account creation, finishing that Activity, and going back to the AccountPicker I dont see a new option of the newly created Account. Although if I restart the app, the recently created Account is in the list.

How I start the AccountPicker:

Intent intent = accountManager.newChooseAccountIntent(null, null, new String[]{"test_namespace"}, null, null, null, null);
startActivityForResult(intent, TEST_CODE);

My questions:

  • Is it supposed to work like this?
  • Can I reload the content of the AccountPicker after I created a new Account?
  • Can I just simply return an Intent with the newly created Account when I return from my Account creation Activity?
Bence Gedai
  • 1,461
  • 2
  • 13
  • 25

1 Answers1

0

In my authenticator activity, after the user authenticates on the server I check the existing accounts and explicitly add the account if it's not there:

    boolean accountRegistered = false;
    Account account = new Account(username, AccountAuthenticator.ACCOUNT_TYPE_MYAPP);
    AccountManager acctMgr = AccountManager.get(this);
    Account[] accounts = acctMgr.getAccountsByType(AccountAuthenticator.ACCOUNT_TYPE_MYAPP);
    for (Account acct : accounts) {
        if (acct.equals(account)) {
            accountRegistered = true;
            break;
        }
    }

    if (accountRegistered) {
        acctMgr.setPassword(account, password);
    } else {
        acctMgr.addAccountExplicitly(account, password, null);
    }

After I do this, I see the account in the account picker.

I can't guarantee this is 100% correct; with the undocumented authentication classes, we're all flying blind.

kris larson
  • 30,387
  • 5
  • 62
  • 74