我正在尝试以编程方式修改联系人的名字和姓氏。我用来完成这项工作的代码片段如下:
operations.add( ContentProviderOperation.newUpdate( Data.CONTENT_URI )
.withSelection( RawContacts._ID + "=?",
new String[] { String.valueOf( mSmartphoneContactKey) } )
.withValue( ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME,
mContactName.getEditableText().toString() )
.withValue( ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME,
mContactLastName.getEditableText().toString() )
.build() );
用mSmartphoneContactKey
列中包含的数据填充
ContactsContract.Contacts._ID
当我使用内容提供程序读取联系人时,它位于我的投影数组中。
问题是某些联系人的姓名和姓氏没有被修改,而是被修改了电话类型。实际上,我对原因没有任何线索。任何建议表示赞赏。
我已经进一步阅读了 Data 表是我必须使用的文档。我已将代码修改如下...仍然无法正常工作
operations.add( ContentProviderOperation.newUpdate( Data.CONTENT_URI )
.withSelection( Data._ID + " = ? AND " + ContactsContract.Data.MIMETYPE + "='" + ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE + "'",
new String[] { String.valueOf( mSmartphoneContactId ) } )
.withValue( ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, mContactName.getEditableText().toString() )
.withValue( ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, mContactLastName.getEditableText().toString() )
.build() );
请帮我!