Хорошо, у меня есть «полностью» работающее приложение 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 / или что-то еще не так.Какие параметры в учетной записи я не добавляю, поэтому учетная запись отображается не во всех местах?