I have created a Sync Adapter with a dummy Account and I don't want it to appear on the Account list in the Settings application, nor when a user presses the add account button in Settings. I have tried android:userVisible="false" in my sync-adapter definition, but still the account appears. I've tried this on an emulator and 3 physical devices. Everything works correctly in terms that it syncs all the data I need, the only thing wrong is that I see the Account on the list, and I don't want to.
My authenticator.xml is:
<account-authenticator xmlns:android="http://schemas.android.com/apk/res/android"
android:accountType="net.astagor.android.hhp.account"
android:icon="@drawable/ic_launcher"
android:smallIcon="@drawable/ic_launcher"
android:label="@string/app_name"
/>
My syncadapter.xml is:
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="net.astagor.android.hhp"
android:accountType="net.astagor.android.hhp.account"
android:userVisible="false"
android:supportsUploading="true"
android:allowParallelSyncs="false"
android:isAlwaysSyncable="true"
/>
And I add my adpater like this:
Account account = AuthenticatorService.GetAccount();
AccountManager accountManager = (AccountManager) context
.getSystemService(Context.ACCOUNT_SERVICE);
if (accountManager.addAccountExplicitly(account, null, null)) {
ContentResolver.setIsSyncable(account, StubProvider.AUTHORITY, 1);
ContentResolver.setSyncAutomatically(account,
StubProvider.AUTHORITY, true);
ContentResolver.addPeriodicSync(account, StubProvider.AUTHORITY,
new Bundle(), SYNC_FREQUENCY);
}
And the I get the account on the account list and in the add account list.
Help please! :)
I found the solution. This is how authenticator.xml should look like:
You must not have these lines:
If you put them, the account will be visible wherever you set android:userVisible="false" or not.
This isn't a real answer, but if you remove the label from the authenticator.xml , it does not show in the list of added accounts , but the icon is there with no label in the list after clicking add account. Ugly and probably not a good idea. (this method does hide account at least on my nexus 4 running 4.4 - haven't checked other devices yet).
I believe the user visible flag in sync adapter only affects the display of the sync part after selecting an account, where you can see the last sync time, set auto sync settings, and trigger sync.
I'd love to know this also. It must be possible, as I don't see my accounts list littered with dummy accounts. So either there's a way or almost none of my installed apps are bothering with sync adapters?