Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

add Account(settings) method doesn't start Activity

I want to create custom app account in settings.

Problems

  1. There is an option with icon in settings > Add account but no name
  2. When click on that(Add account), AuthenticatorActivity doesn't start. I debug Authenticator class, addAccount method is called but no activity popped.

I did the following steps:

Authenticator class(partial)

public class AccountAuthenticator extends AbstractAccountAuthenticator{
    @Override
    public Bundle addAccount(AccountAuthenticatorResponse response,
            String accountType, String authTokenType,
            String[] requiredFeatures, Bundle options)
            throws NetworkErrorException {
        final Intent intent = new Intent(mContext, AuthenticatorActivity.class);
        intent.putExtra(AuthenticatorActivity.ARG_ACCOUNT_TYPE, accountType);
        intent.putExtra(AuthenticatorActivity.ARG_AUTH_TYPE, authTokenType);
        intent.putExtra(AuthenticatorActivity.ARG_IS_ADDING_NEW_ACCOUNT, true);
        intent.putExtra(AccountManager.KEY_ACCOUNT_AUTHENTICATOR_RESPONSE, response);
        final Bundle bundle = new Bundle();
        bundle.putParcelable(AccountAuthenticator.KEY_INTENT, intent);
        return bundle;
    }
}

AuthenticatorService

public class AuthenticatorService extends Service{
     @Override
    public IBinder onBind(Intent intent) {
        authenticator = new AccountAuthenticator(this);
        return authenticator.getIBinder();
    }
}

manifest

<service android:name="com.voillo.utils.AuthenticatorService" android:exported="false"
            android:label="@string/app_name">
     <intent-filter>
        <action android:name="android.accounts.AccountAuthenticator" />
     </intent-filter>
     <meta-data android:name="android.accounts.AccountAuthenticator"
               android:resource="@xml/authenticator" />
</service>

authenticator xml

<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
     android:accountType="com.example.myapp"
     android:icon="@drawable/myapp_icon"
     android:smallIcon="@drawable/myapp_icon_small"
     android:label="myapp"
     />
like image 555
shantanu Avatar asked Jan 01 '15 12:01

shantanu


1 Answers

Chances are high that you forgot to declare the Activity on your Manifest File. I encountered the same error and found out that I forgot to declare my activity on the project's Manifest.

like image 104
Lester Avatar answered Sep 19 '22 09:09

Lester