Android:将现有联系人添加为收藏联系人?

时间:2012-05-25 10:53:14

标签: android android-contacts

我有一个ListView,我在其中获得所有电话联系人。在ListView中,我已经放了一个按钮,然后点击该按钮,应该在收藏夹中添加联系人,然后再次点击应该从收藏夹中删除。
在这里,我找到了添加新联系人收藏夹的代码。但是如何通过点击button.i尝试使用此代码:

代码:

ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();
        int rawContactInsertIndex = ops.size();

        ops.add(ContentProviderOperation.newUpdate(RawContacts.CONTENT_URI)
                .withValue(RawContacts.ACCOUNT_TYPE, null)
                .withValue(RawContacts.ACCOUNT_NAME, null)
                .withValue(RawContacts.STARRED, true).build());
        ops.add(ContentProviderOperation
                .newUpdate(ContactsContract.Data.CONTENT_URI)
                .withValueBackReference(ContactsContract.Data.RAW_CONTACT_ID,
                        rawContactInsertIndex)
                .withValue(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE)
                .withValue(Phone.NUMBER, "91-0000000002").build());
        ops.add(ContentProviderOperation
                .newUpdate(Data.CONTENT_URI)
                .withValueBackReference(Data.RAW_CONTACT_ID,
                        rawContactInsertIndex)
                .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
                .withValue(StructuredName.DISPLAY_NAME, "Maulik patel").build());

使用此代码将所有联系人添加到收藏夹中 感谢

2 个答案:

答案 0 :(得分:2)

在这里,我最喜欢的是最喜欢的具体联系方式。

ContentValues values = new ContentValues();
        String[] fv = new String[] { "juned" };
        values.put(Contacts.STARRED, 1);
        getContentResolver().update(Contacts.CONTENT_URI, values,
                Contacts.DISPLAY_NAME + "= ?", fv);

只需将1更改为0即可。

答案 1 :(得分:2)

我需要添加/删除带有特定联系人ID而非联系人姓名的收藏夹,因此我修改了juned的代码,这里是:

int contactId = 10;    // some contact's ID

ContentValues values = new ContentValues();
values.put(ContactsContract.Contacts.STARRED, 1);
getActivity().getContentResolver().update(ContactsContract.Contacts.CONTENT_URI, values,
    ContactsContract.Contacts._ID + "= ?", new String[] { String.valueOf(contactId) });

不同之处在于您只需将DISPLAY_NAME更改为_ID