Я пытаюсь назначить день рождения провайдеру контактов Android для существующего контакта, у которого нет поля, я пытался использовать метод, который я использую, чтобы обновить день рождения контакта, который уже есть день рождения:
fun updateBirthdate(id: Long, birthdate: String) {
val list = ArrayList<ContentProviderOperation>()
val where = """${ContactsContract.Data.CONTACT_ID} = ?
AND ${ContactsContract.Data.MIMETYPE} = ?"""
val whereParams =
arrayOf(id.toString(), ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE)
list.add(ContentProviderOperation.newUpdate(
ContactsContract.Data.CONTENT_URI)
.withSelection(where, whereParams)
.withValue(ContactsContract.CommonDataKinds.Event.START_DATE, birthdate)
.withValue(ContactsContract.CommonDataKinds.Event.TYPE,
ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY)
.build())
context.contentResolver.applyBatch(ContactsContract.AUTHORITY, list)
}
Но это не работает, я также попытался вставить новую строку:
list.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(ContactsContract.Data.MIMETYPE, CommonDataKinds.Event.CONTENT_ITEM_TYPE)
.withValue(CommonDataKinds.Event.START_DATE, birthdate)
.withValue(CommonDataKinds.Event.TYPE, ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY)
.build())
Но ничего из вышеперечисленного не работает, какая-нибудь помощь?