Android で特定の連絡先 ID を持つ rawcontact を作成しようとしているため、同じ contactid (rawcontactid ではない) を持つ他の rawcontacts にリンクされます。
問題は、Contact_ID を ContentProviderOperations に挿入できないことです。次のコードを使用すると、「挿入に失敗しました」が返されます
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
int id = (int) contactId;
String condition = Data.RAW_CONTACT_ID + "=?";
String[] parameters = { "" + id };
try {
String accountName = account.name;
String accountType = account.type;
ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
.withValue(RawContacts.ACCOUNT_TYPE, accountType)
.withValue(RawContacts.ACCOUNT_NAME, accountName).build());
ops.add(getAccountGroupOperation(account));
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.CONTACT_ID, "" + id)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, contact.getName())
.build());
MyApplication.getAppContext().getContentResolver()
.applyBatch(ContactsContract.AUTHORITY, ops);
} catch (Exception e) {
...
}
私は何を間違っていますか?