我目前正在开发一个应用程序,我需要将联系人插入到移动电话联系人列表中。使用ContactsContract.RawContacts批量插入,我成功地将联系人插入到电话簿中。在联系人插入获取联系人ID
http://developer.android.com/reference/android/provider/ContactsContract.RawContacts.html
但是试图更新他们时,他们只需添加更多PHONENUMBER,而不是换旧人。
所以我来到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?
谢谢你提前给我任何帮助。
谢谢,它适用于我。你刚刚解决了我的一个大问题 – Max 2012-03-28 12:38:05
没问题。也许你可以给我一只手:http://stackoverflow.com/questions/9907751/android-update-a-contact – Manitoba 2012-03-28 12:44:57