Как добавить контакт в группу на Android? - PullRequest
1 голос
/ 22 марта 2010

Я читал о ContactsContract.CommonDataKinds.GroupMembership , но я не могу понять, какой URI используется для вставки.

Я подготовил этот метод:

public static Uri addToGroup(ContentResolver resolver, long personId,
            long groupId) {

        ContentValues values = new ContentValues();

        values.put(ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID, personId);

        values.put(ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID, groupId);

        return resolver.insert(uri, values);//URI is not known

    }

Может кто-нибудь сказать мне, какой URI использовать в SDK 2.0 +?

1 Ответ

5 голосов
/ 22 марта 2010

Я нашел разрешение и выкладываю его здесь:

public Uri addToGroup(long personId, long groupId) {

    //remove if exists
    this.removeFromGroup(personId, groupId);

    ContentValues values = new ContentValues();
    values.put(ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID,
            personId);
    values.put(
            ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID,
            groupId);
    values
            .put(
                    ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE,
                    ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE);

    return this.ctx.getContentResolver().insert(
            ContactsContract.Data.CONTENT_URI, values);

}

Но я ничего не понимаю, почему я должен использовать RAW_CONTACT_ID, а не CONTACT_ID, позднее возникает нулевое исключение.

...