Im trying to write a new contact to the contact database. But I am getting the following error: java.lang.UnsupportedOperationException: Aggregate contacts are created automatically
I have added the following fields in the manifest:
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
This is my code:
ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
String accountType =null;
String accountName = null;
Builder builder = ContentProviderOperation.newInsert(
ContactsContract.Contacts.CONTENT_URI);
builder.withValue(ContactsContract.RawContacts.ACCOUNT_TYPE, accountType);
builder.withValue(ContactsContract.RawContacts.ACCOUNT_NAME, accountName);
ContentProviderOperation op = builder.build();
Log.i("contacts","op.getUri(): "+op.getUri());
ops.add(op);
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID,
ops.size())
.withValue(
ContactsContract.Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.DISPLAY_NAME, contact.getFullName())
.build());
ops.add(ContentProviderOperation.newInsert(ContactsContract.Data.CONTENT_URI)
.withValueBackReference(
ContactsContract.Data.RAW_CONTACT_ID,
ops.size())
.withValue(
ContactsContract.Data.MIMETYPE,ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE)
.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, contact.getPhoneNumber())
.build());
try {
this.cr.applyBatch(ContactsContract.AUTHORITY, ops);
}
Hope someone can help!