I want to create custom app account in settings.
Problems
- There is an option with icon in
settings > Add account
but no name - When click on that(Add account),
AuthenticatorActivity
doesn't start. I debugAuthenticator
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"
/>