0

I am trying to delete specific contact but it is not deleting.

Here is my code:

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;
    }
koteswarao
  • 370
  • 3
  • 15

1 Answers1

0

Try to use this code.

    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());
    }
    }

To delete any specific contact modify the query according to your needs.

cr.delete(uri, null, null);
Kristo
  • 1,339
  • 12
  • 22