Как сделать новые контакты экспортированы из приложения в телефонную книгу как редактируемые - PullRequest
1 голос
/ 10 июня 2019

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

Для этого я использую аутентификатор учетной записи и метод syncadapter.

Ниже приведены мои sync-adapter xml

<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
    android:contentAuthority="com.android.contacts"
    android:supportsUploading="true"
    android:userVisible="true"
    android:accountType="com.example.myapp"
/>

Настройка android:supportsUploading="true"

Такжеэкспорт необработанных контактов и полей данных только для чтения, установив флаг ниже 0 android.provider.ContactsContract.RawContacts.RAW_CONTACT_IS_READ_ONLY android.provider.ContactsContract.RawContacts.DATA_IS_READ_ONLY

Тем не менее я не вижу возможности редактировать мои контакты в собственном приложении.Чего здесь не хватает?

Заранее спасибо

[ОБНОВЛЕНИЕ] Я использую приведенный ниже код, чтобы проверить, какой тип учетной записи поддерживается контактами и доступен для редактирования.

final SyncAdapterType[] syncs = ContentResolver.getSyncAdapterTypes();
for (SyncAdapterType sync : syncs) {
    Log.d(TAG, "found SyncAdapter: " + sync.accountType);
    if (ContactsContract.AUTHORITY.equals(sync.authority)) {
        Log.d(TAG, "found SyncAdapter that supports contacts: " + sync.accountType);
        if (sync.supportsUploading()) {
            Log.d(TAG, "found SyncAdapter that supports contacts and is not read-only: " + sync.accountType);
            // we'll now get a list of all accounts under that accountType:
            Account[] accounts = AccountManager.get(this).getAccountsByType(sync.accountType);
            for (Account account : accounts) {
               Log.d(TAG, account.type + " / " + account.name);
            }
        }
    }
}

Мои приложениятип учетной записи не только для чтения, но по-прежнему не отображается опция редактирования.Пожалуйста, помогите

1 Ответ

1 голос
/ 12 июня 2019

Несколько вещей, которые вам нужно сделать:

  1. Реализация SyncService и объявление его в AndroidManifest
  2. создание файла contacts.xml, который будет связываться с контактомредактор, как анализировать и редактировать контакты, связанные с вашей учетной записью

См. https://github.com/xwiki-contrib/android-authenticator/blob/master/app/src/main/AndroidManifest.xml#L81-L94 https://github.com/xwiki-contrib/android-authenticator/blob/master/app/src/main/res/xml/syncadapter.xml https://github.com/xwiki-contrib/android-authenticator/blob/master/app/src/main/res/xml/contacts.xml

в качестве примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...