根据联系人的名称更新联系人不起作用

时间:2018-11-09 09:22:21

标签: java android

在更新named_name联系人时,我遇到了一些问题,我的代码

ContentProviderOperation.Builder builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
    builder.withSelection(ContactsContract.Data.CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + "=?",
            new String[]{String.valueOf(id), ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE});
    builder.withValue(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, lastname);
    builder.withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, firstname);
    ops.add(builder.build());

初始名称:约翰·史密斯
第一种情况:用Joh更改给定名称,结果成功
第二种情况:用Johny更改给定名称,结果失败

有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

 ops.add(ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
        .withSelection(ContactsContract.Data.RAW_CONTACT_ID + "=?" + " and " + ContactsContract.Data.MIMETYPE + "=?",
        new String[]{String.valueOf(id), ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE})
        .withValue(ContactsContract.CommonDataKinds.StructuredName.GIVEN_NAME, firstname)
        .withValue(ContactsContract.CommonDataKinds.StructuredName.FAMILY_NAME, lastname)
        .build());