Android-使用多个值更新联系人字段

时间:2018-09-07 08:31:41

标签: android contacts updating

我正在使用android studio 3.1.4,我想要更新如下所示的android联系人

 ArrayList<ContentProviderOperation> ops = new ArrayList<>();   

 ContentProviderOperation.Builder builder1 = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                                                .withSelection(ContactsContract.Data.CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + "=?", new String[]{String.valueOf(contactId), ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE})
                                                .withValue(ContactsContract.CommonDataKinds.Im.PROTOCOL, 1)
                                                .withValue(ContactsContract.CommonDataKinds.Im.DATA, "MyTest@live.com");
 ops.add(builder1.build());

 ContentProviderOperation.Builder builder2 = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI)
                            .withSelection(ContactsContract.Data.CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + "=?", new String[]{String.valueOf(contactId), ContactsContract.CommonDataKinds.Im.CONTENT_ITEM_TYPE})
                            .withValue(ContactsContract.CommonDataKinds.Im.PROTOCOL, 2)
                            .withValue(ContactsContract.CommonDataKinds.Im.DATA, "MyTest@yahoo.com");
 ops.add(builder2.build());

context.getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

结果是该联系人在Im字段中仅具有第二个值“ MyTest@yahoo.com”。以某种方式覆盖第一个值MyTest@live.com

所以问题是当联系人字段有多个要更新的值时,如何更新联系人字段?

注意:如果联系人字段没有值,则更新不会影响它。它保持为空,没有任何值。

0 个答案:

没有答案