Добавление номера в существующий контакт программным способом не работает на некоторых устройствах.Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Добавление номера в существующий контакт программным способом не работает на некоторых устройствах.

Сообщение Anonymous »

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

Код: Выделить всё

        val operation = ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValue(Data.RAW_CONTACT_ID, contactId)
.withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
.withValue(Phone.NUMBER, number)
.withValue(Phone.TYPE, Phone.TYPE_MOBILE)
.build()
context.contentResolver.applyBatch(AUTHORITY, listOf(operation))
Он отлично работает в эмуляторе Pixel 2, однако когда я пробую это на реальном устройстве Samsung Galaxy S21, он ничего не делает. ApplyBatch возвращает правильный результат операции, указывающий, что новая строка в таблице данных была успешно создана, однако я не вижу ее в контакте, и когда я сбрасываю базу данных, я также не вижу записи.
Более того, когда я позже попытался создать новый контакт среди других, я нашел номера телефонов, которые раньше пытался добавить к другому контакту. Как будто система кэшировала запрос на вставку номера телефона и применила его при следующем создании контакта.
Есть идеи, как это могло произойти и есть ли способ исправить это, не очищая всю базу данных контактов?

Подробнее здесь: https://stackoverflow.com/questions/791 ... in-some-de
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»