如何从联系人列表中删除特定联系人

时间:2016-01-28 10:06:25

标签: android contacts

我正在尝试删除特定联系人,但不会删除。

这是我的代码:

public static boolean deleteContact(Context ctx, String phone) {

        Uri contactUri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phone));
        Cursor cur = ctx.getContentResolver().query(contactUri, null, null, null, null);
        try {
            if (cur.moveToFirst()) {
                do {
                    String lookupKey = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
                    Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_LOOKUP_URI, lookupKey);
                    ctx.getContentResolver().delete(uri, null, null);
                } while (cur.moveToNext());
            }

        } catch (Exception e) {
            System.out.println(e.getStackTrace());
        }
        return true;
    }

1 个答案:

答案 0 :(得分:0)

尝试使用此代码。

    ContentResolver cr = getContentResolver();
    Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
    null, null, null, null);
    while (cur.moveToNext()) {
    try{
        String lookupKey = cur.getString(cur.getColumnIndex(
            ContactsContract.Contacts.LOOKUP_KEY));
        Uri uri = Uri.withAppendedPath(ContactsContract.
            Contacts.CONTENT_LOOKUP_URI, lookupKey);
        System.out.println("The uri is " + uri.toString());
        cr.delete(uri, null, null);
    }
    catch(Exception e)
    {
      System.out.println(e.getStackTrace());
    }
    }

要删除任何特定联系人,请根据需要修改查询。

cr.delete(uri, null, null);