Возможно ли переопределить функциональность Учетные записи и синхронизация «Убрать учетную запись»

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

1) Можно было переопределить функциональность кнопки «Добавить учетную запись» в Accounts & Sync, но я не могу найти способ переопределить функциональность кнопки «Удалить учетную запись» – это возможно?

2) Я читал, что аутентификаторы могут предотвратить удаление своих учетных записей, но я не могу узнать, как … кто-нибудь знает, как я могу добавить это в свой аутентификатор? Таким образом, я смогу использовать AbstractAccoutnAuthenticator.getAccountRemovalAllowed, чтобы получить доступную функциональность.

благодаря

Чтобы ответить на второй вопрос:

Предполагая, что ваше имя пакета – com.companyname

Создайте класс Authenticator, который расширяет AbstractAccountAuthenticator в пакете com.companyname.auth и реализует на нем этот метод:

@Override public Bundle getAccountRemovalAllowed(AccountAuthenticatorResponse response, Account account) { Bundle result = new Bundle(); boolean allowed = false; // or whatever logic you want here result.putBoolean(AccountManager.KEY_BOOLEAN_RESULT, allowed); return result; } 

Добавьте это в манифест:

  <service android:name=".auth.AuthenticationService"> <intent-filter> <action android:name="android.accounts.AccountAuthenticator"></action> </intent-filter> <meta-data android:name="android.accounts.AccountAuthenticator" android:resource="@xml/authenticator"></meta-data> </service> 

(Обратите внимание, что lint дает предупреждение о том, что эта экспортированная служба не требует разрешений).

И затем в res / xml добавьте файл authenticator.xml:

 <?xml version="1.0" encoding="utf-8"?> <account-authenticator xmlns:android="http://schemas.android.com/apk/res/android" android:accountType="com.companyname" android:icon="@drawable/app_icon" android:smallIcon="@drawable/app_icon_small" android:label="@string/app_name" /> 

Предполагая, что ваш тип учетной записи «com.companyname». Это то, что мы делаем, и похоже, что он работает от API 8.

Предыдущий пользователь прав. Тем не менее, нет способа настроить диалог (в документации содержится информация о том, что вы можете вернуть намерение создать собственный экран, который явно не реализован в коде).

Однако не рекомендуется возвращать false. Поскольку он возвращает диалоговое окно, в котором говорится о чем-то очень страшном для пользователя (что-то вроде строк, которые вам нужно выполнить с заводским сбросом)

Intereting Posts
Android: как получить значение атрибута «listPreferredItemHeight» в коде? Всегда получать состояние сеанса: CLOSED_LOGIN_FAILED, токен: {токен AccessToken: ACCESS_TOKEN_REMOVED в facebook android sdk3.0. Сложность при доступе к SwitchCompat из ящика Nav Vuforia против Metaio SDK против ARKit против D'Fusion Mobile против Layar SDK Как откалибровать акселерометр Android и уменьшить шум, устранить гравитацию Android / QR-код: можно ли открывать прямо в Google Play Store с помощью QR-кода? Google Map Lite в CardView NoClassDefFoundError в Runtime в классе внутри .AAR в Android Studio Как обращаться с ListView на Android Как поддерживать несколько версий Android в коде? Двуногий Oauth в Android Выпадающий список в гибридном приложении имеет черный текст на сером фоне на некоторых устройствах Android Как использовать ExifInterface с потоком или URI Принести активность перед всем запущенным приложением Как отличить, вызывается ли onDestroy () как часть последовательности изменения конфигурации?