Менеджер по работе с клиентами.Тип учетной записи для контактов - PullRequest
0 голосов
/ 25 сентября 2018

Хорошо, у меня есть «полностью» работающее приложение Account.За исключением 1 вещи.

Мое приложение берет данные из SQlite DB и создает учетные записи через ContactContract с именем и типом учетной записи, указанными как

contactsOperations.add(ContentProviderOperation.newInsert(ContactsContract.RawContacts.CONTENT_URI)
                    .withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, static_variables.ACCOUNT_TYPE)
                    .withValue(ContactsContract.RawContacts.ACCOUNT_NAME, static_variables.ACCOUNT_NAME)
                    .withYieldAllowed(true)
                    .build());

А на некоторых телефонах почти все (и эмуляторы) встандартное приложение контактов. Я вижу, что учетная запись создана, а место учетной записи установлено на static_variables.ACCOUNT_NAME, как и предполагалось.

Но на некоторых устройствах место «Неизвестно» (считается, что учетная запись создана и существует), а на некоторых контактах - нет.видны вообще, но существуют.

Когда (на любом телефоне) я проверяю это с помощью

Cursor cursor_raw = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null, null);

Я вижу эти контакты в конце с правильно заданными именем учетной записи и типом.

1.Это первый вопрос, что не так?

Второй вопрос не вопрос, а еще одно доказательство предыдущего.Когда я захожу в Система-> Учетные записи-> Добавить учетную запись, я вижу там свой тип учетной записи и могу создать его.

Но когда я в стандартном приложении контактов и нажимаю добавить контакт, я вижу "Google",«Обмен», «SIM» и еще пара, но не моя.Также в стандартном приложении, когда я выбираю «Настройки открытого аккаунта» (где находится автосинхронизация), я вижу те же аккаунты «Google», «Exchange», «SIM» и еще пару, но не мои.

Второй
2.Какая учетная запись / ContentProvider / или что-то еще не так.Какие параметры в учетной записи я не добавляю, поэтому учетная запись отображается не во всех местах?

1 Ответ

0 голосов
/ 27 сентября 2018

Короче.Не полностью настроен SyncAdapter.Если вы не хотите изменять наш contentAuthority, а просто создайте еще один адаптер синхронизации с другим contentAuthority.

Ссылки для решения проблемы.

Отображение настраиваемого адаптера синхронизации в качестве опции придобавление контактов

Как добавить учетную запись моего приложения в список "Учетные записи" приложения контактов Android?

https://android.googlesource.com/platform/packages/apps/Contacts/+/android-sdk-support_r11/tests/res/xml

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