0

I am trying to permanently remove a Android Contact Group and have used the Sync parameter and it always appears the record is simply marked as deleted and not physically removed. Can anyone explain how/when, if ever, the Contract group row is deleted permanently or show a snippet of code demonstrating how to do this? The records I am trying to remove are ones that I added, so they are not Read-Only.

Linked back to https://stackoverflow.com/a/21376905/5398898

My Delete Code:

private void RemoveGroup()
{
    TextView tv = (TextView) this.findViewById(R.id.helloworld);

    int[] startId = {10};//{6, 7, 8, 9, 10, 11};
    String groupName = "My New Contacts";

    Uri mUri = ContactsContract.Groups.CONTENT_URI;
    mUri.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build();

    for (int n = 0; n < startId.length; n++) {

        groupCount = startId[n];

        ContentValues values = new ContentValues();
        values.put(ContactsContract.Groups._ID, groupCount);

        try {
            getContentResolver().delete(mUri, values.toString(),null);
        } catch (Exception ex) {
            tv.setText(ex.getMessage());
        }
    }
}

Result when reading the groups:

Image can be found here https://i.stack.imgur.com/5OOfc.png

Community
  • 1
  • 1
Nope
  • 3
  • 6
  • Thanks iago. I didn't realize that buildUpon() did not append it to the URI. PERFECT. Thanks. – Nope Oct 05 '15 at 17:51

1 Answers1

0

You are building the correct Uri but not using it, try like this

Uri mUri = ContactsContract.Groups.CONTENT_URI;
mUri = mUri.buildUpon().appendQueryParameter(ContactsContract.CALLER_IS_SYNCADAPTER, "true").build();
Ankur Kumar
  • 972
  • 7
  • 12