1
以下是工作中插入一個新的聯繫人:插入一個新的聯繫人 - 爲什麼ContentValues不工作
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());
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValueBackReference(Data.RAW_CONTACT_ID, 0)
.withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
.withValue(StructuredName.GIVEN_NAME, given_name)
.build());
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
我想切換到ContentValues
,因爲它是更靈活。
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());
ContentValues values = new ContentValues();
values.put(StructuredName.GIVEN_NAME, given_name)
ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
.withValues(values).build());
getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);
這只是增加了一個空的接觸:
然而,當我改變ContentValues
如下失敗。
看起來我應該在我的新版本中調用類似withValueBackReference()
的東西,但不知道如何去做。有任何想法嗎?