Подтвердить что ты не робот

Скрыть фиктивную учетную запись для адаптера синхронизации из настроек

Я создал адаптер синхронизации с фиктивной учетной записью, и я не хочу, чтобы он отображался в списке Учетная запись в приложении "Настройки", а также когда пользователь нажимает кнопку "Добавить учетную запись" в "Настройки". Я пробовал android: userVisible = "false" в моем определении адаптера синхронизации, но все же появляется учетная запись. Я пробовал это на эмуляторе и на трех физических устройствах. Все работает правильно с точки зрения того, что он синхронизирует все данные, которые мне нужны, единственное, что неправильно, это то, что я вижу учетную запись в списке, и я не хочу.

Мой файл authenticator.xml:

<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"
    />

Мой файл syncadapter.xml:

<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"
    />

И я добавляю свой adpater следующим образом:

 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);
 }

И я получаю учетную запись в списке учетных записей и в списке дополнительных учетных записей.

Помогите пожалуйста!:)

4b9b3361

Ответ 1

Я нашел решение. Вот как должен выглядеть файл authenticator.xml:

<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"

Если вы их разместите, учетная запись будет видна везде, где вы устанавливаете андроид: userVisible = "false" или нет.

Ответ 2

Это не реальный ответ, но если вы удалите ярлык из файла authenticator.xml, он не будет отображаться в списке добавленных учетных записей, но значок не будет содержать ярлыка в списке после нажатия кнопки добавления учетной записи. Уродливая и, вероятно, не очень хорошая идея. (этот метод скрывает учетную запись, по крайней мере, на моем ядре 4, работающем 4.4 - еще не проверял другие устройства).

Я полагаю, что флаг видимого пользователя в адаптере синхронизации влияет только на отображение части синхронизации после выбора учетной записи, где вы можете увидеть последнее время синхронизации, установить параметры автоматической синхронизации и синхронизацию запуска.

Я хотел бы это узнать. Это должно быть возможно, так как я не вижу, что список моих учетных записей заполнен фиктивными учетными записями. Так что либо есть способ, либо почти ни один из моих установленных приложений не беспокоит адаптеры синхронизации?