Android 2.0 Как получить отображаемое имя и номер в контактной группе

StackOverflow https://stackoverflow.com/questions/3010039

Вопрос

Я получаю список контактов в данном ID группе по я бы:

Cursor cur = ctx.managedQuery(ContactsContract.Data.CONTENT_URI,
             new String[] { GroupMembership.GROUP_ROW_ID,
        GroupMembership.CONTACT_ID },
        GroupMembership.GROUP_ROW_ID + "=" + String.valueOf(id),
        null, null);

if (cur.moveToFirst()) {
    int groupIdx = cur.getColumnIndex(GroupMembership.GROUP_ROW_ID);
    int personIdx = cur.getColumnIndex(GroupMembership.CONTACT_ID);

    do {
        if (cur.getLong(groupIdx) == id) {
            Cursor ccur = ctx.getContentResolver().query( Phone.CONTENT_URI,
                new String[] {Phone.NUMBER, Phone.TYPE,
                Phone.DISPLAY_NAME },
                Phone.CONTACT_ID +"="+ contactId, 
                      null, null); 
            Log.e("Test: Number", ccur.getString(0))
            Log.e("Test: Name", ccur.getString(2))
        }
    } while (cur.moveToNext());
}

Но кажется, что это не работает правильно.

Это было полезно?

Решение

Вероятно, вы скучаете по миметипе.

String where = ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID + "="
                + groupid + " AND "
                + ContactsContract.CommonDataKinds.GroupMembership.MIMETYPE + "='"
                + ContactsContract.CommonDataKinds.GroupMembership.CONTENT_ITEM_TYPE + "'";

        Cursor c = this.ctx.getContentResolver().query(
                ContactsContract.Data.CONTENT_URI,
                new String[] {
                        ContactsContract.CommonDataKinds.GroupMembership.RAW_CONTACT_ID,
                        ContactsContract.Data.DISPLAY_NAME
                }, where, null, ContactsContract.Data.DISPLAY_NAME + " COLLATE LOCALIZED ASC");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top