В настоящее время я работаю над приложением, в котором мне нужно вставить контакты в список контактов мобильных телефонов.Используя пакетную вставку ContactsContract.RawContacts, я успешно вставил контакты в телефонную книгу.
http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html
Однако, пытаясь обновить их, они просто добавляют дополнительный номер телефона, вместо того, чтобы заменить старый.
Итак, я пришел на ContactsContract.Data, где через Contact_ID можно было, по-видимому, при обновлении заменить старый номер телефона.
http://developer.android.com/reference/android/provider/ContactsContract.Data.html
Теперь у меня вопрос, возможно ливосстановить Contacts_ID при вставке?Так что, когда я вставляю контакт по этому коду:
ArrayList<ContentProviderOperation> ops =
new ArrayList<ContentProviderOperation>();
...
int rawContactInsertIndex = ops.size();
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, accountType)
.withValue(RawContacts.ACCOUNT_NAME, accountName)
.build());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, "Mike Sullivan")
.build());
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
Я получу обратно Contacts_ID?
Спасибо заранее за любую помощь, которую вы можете мне дать.