简体   繁体   English

如何在Android中使用光标获取给定联系人组的联系人成员的电话号码

[英]How to get phone numbers of contact members of a given contact group in android using cursor

I have gotten the group id from cursor. 我已经从光标处获得了组ID。 Let's say groupID as '59'. 假设groupID为“ 59”。 I want to get all contacts from the groups where Group_ID is 59. I have manipulated projection, selection and cursor with different classes of ContactsContract but no use. 我想从Group_ID为59的组中获取所有联系人。我已经使用不同类的ContactsContract操纵了投影,选择和光标,但是没有用。 Here is what my code for getting member contacts looks like. 这是我获取会员联系人的代码。

Uri uri = ContactsContract.Data.CONTENT_URI; Uri uri = ContactsContract.Data.CONTENT_URI;

                    String[] projection22 = new String[] {
                            ContactsContract.Contacts._ID,
                            ContactsContract.Data.CONTACT_ID,
                            ContactsContract.Data.DISPLAY_NAME
                    };

                    String selection = null;
                    String[] selectionArgs = null;

                    if(groupID != null && !"".equals(groupID)) {
                        selection = ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID
                                + " = ?";
                        selectionArgs = new String[] { groupID };
                    }

                    String sortOrder = null;

                    Cursor cursor = getContentResolver().query(uri, projection22,
                            selection, selectionArgs, sortOrder);

Now the cursor returns zero count. 现在,光标返回零计数。 Please get me through to use the cursor in a proper way. 请引导我正确使用光标。

    public void getSampleContactList(int groupID) {

    contactList = new ArrayList<ConatctData>();
    Uri groupURI = ContactsContract.Data.CONTENT_URI;
    String[] projection = new String[] {
            ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME,
            ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID };

    Cursor c = getContentResolver().query(
            groupURI,
            projection,
            ContactsContract.CommonDataKinds.GroupMembership.GROUP_ROW_ID
                    + "=" + groupID, null, null);

    while (c.moveToNext()) {
        String id = c
                .getString(c
                        .getColumnIndex(ContactsContract.CommonDataKinds.GroupMembership.CONTACT_ID));
        Cursor pCur = getContentResolver().query(
                ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
                ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
                new String[] { id }, null);

        while (pCur.moveToNext()) {
            ConatctData data = new ConatctData();
            data.name = pCur
                    .getString(pCur
                            .getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));

            data.phone = pCur
                    .getString(pCur
                            .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

            contactList.add(data);
        }

        pCur.close();

    }
}

class ConatctData {
    String phone, name;
}

original post 原始帖子

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM