Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

addAccountExplicitly Success, but not showing any account in Settings/Account

I have written some code to add my custom account in settings While clicking add account I can see my custom account and when clicking on that I am showing the sign in form. Inside that I am calling the below code

if (mAccountManager.addAccountExplicitly(account, password, userData)) {
        // worked
        System.out.println("Account added");
    } else {
        // guess not
        System.out.println("NOT DONE");
    }

First time it shows "Account added", but cant see anything in Settings/Accounts. PLease anyone help me.

Here is the complete code

Log.d("AuthenticatorActivity", "onCreate");

    mAccountManager = AccountManager.get(getBaseContext());

    String accountName = getIntent().getStringExtra(ARG_ACCOUNT_NAME);
    mAuthTokenType = getIntent().getStringExtra(ARG_AUTH_TYPE);

    if (mAuthTokenType == null)
        mAuthTokenType = AccountGeneral.AUTHTOKEN_TYPE_FULL_ACCESS;

    accountName= "test55";

    findAccount(accountName);

    System.out.println(mAuthTokenType + "accountName : " + accountName);

    Bundle data = new Bundle();
    data.putString(AccountManager.KEY_ACCOUNT_NAME, accountName);
    data.putString(AccountManager.KEY_ACCOUNT_TYPE, mAuthTokenType);
    data.putString(AccountManager.KEY_AUTHTOKEN, authtoken);
    data.putString(PARAM_USER_PASS, password);

    Bundle userData = new Bundle();
    userData.putString("userObjectId", "2");
    data.putBundle(AccountManager.KEY_USERDATA, userData);

    final Intent res = new Intent();
    res.putExtras(data);

    final Account account = new Account(accountName, "com.coderzheaven.auth_example");

    if (mAccountManager.addAccountExplicitly(account, password, userData)) {
        // worked
        System.out.println("DONE");
    } else {
        // guess not
        System.out.println("NOT DONE");
    }

    mAccountManager.addAccountExplicitly(account, password, userData);
    mAccountManager.setAuthToken(account, mAuthTokenType, authtoken);
    setAccountAuthenticatorResult(data);
    setResult(RESULT_OK, res);
like image 444
James Avatar asked Dec 05 '22 21:12

James


1 Answers

I had the same problem and found that when the android:label field in authenticator.xml (or whatever xml file you are pointing to in your authenticator service definition in AndroidManifest.xml) doesn't contain a localized string that the account does not show up under Settings.

ie, this doesn't work: android:label="My App"

but this does: android:label="@string/my_app"

like image 59
user888867 Avatar answered Jan 21 '23 05:01

user888867