새 연락처를 만들 때 RAW_CONTACT_ID를 설정해야한다고 생각합니다. 이 코드가 어떻게 잘 수행되는지는 아닙니다. 내가 맞습니까? 그렇지 않은 경우,이 데이터가 동일한 연락처에 속한다는 것을 어떻게 알 수 있습니까? 예인 경우 RAW_CONTACT_ID를 설정하는 방법은 무엇입니까? 어쩌면 질문은 이렇게 말할 수 있습니다 : 어떻게 존재하지 않는 새로운 RAW_CONTACT_ID를 얻을 수 있습니까? 다음 (내가 RAW_CONTACT_ID에 0을 설정) 내 코드를 게시 :새 연락처를 만들 때 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! – blackdog