當我想創建新聯繫人時,我想我必須設置RAW_CONTACT_ID。如果不是這些代碼如何表現良好。我對嗎?如果不是,它怎麼知道這些數據屬於同一個聯繫人。如果是,如何設置RAW_CONTACT_ID?也許這個問題可以這樣說:我怎麼能得到不存在的新RAW_CONTACT_ID?然後發佈我的代碼(我設置0〜RAW_CONTACT_ID):如何在創建新聯繫人時設置RAW_CONTACT_ID聯繫人
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
ops.add(ContentProviderOperation
.newInsert(ContactsContract.RawContacts.CONTENT_URI)
.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, null)
.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, null)
.build());
// ------------------------------------------------------ Names
if (displayName != null) {
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(
ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE)
.withValue(
ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME,
displayName).build());
}
// ------------------------------------------------------ Mobile Number
if (mobileNumber != null) {
ops.add(ContentProviderOperation
.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID, 0)
.withValue(
ContactsContract.Data.MIMETYPE,
ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER,
mobileNumber)
.withValue(ContactsContract.CommonDataKinds.Phone.TYPE,
ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)
.build());
}
context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
tks!it works! – blackdog