如何阅读android中联系人号码和姓名的不同联系人?

时间:2015-11-17 12:00:08

标签: android

我想阅读联系人列表,我可以获取联系号码而不是姓名,它取不同的名字。例如:我已将号码保存为     1)8888888888,名称为USER1 2)9999999999,名称为USER2 3)4444444444,名称为USER3等

显示8888888888,但我的应用中名称为USER3, 我想在我的应用程序中阅读联系人列表。请帮助我。

谢谢

1 个答案:

答案 0 :(得分:0)

public ArrayList<LocalContacts> localContactsObj = new ArrayList<LocalContacts>();

public void GetContacts(Context cntx) //This Context parameter is nothing but your Activity class's Context
{
    localContactsObj.clear();
    //localContactsName.clear();
    //localContactsNumber.clear();


    Cursor cursor =getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null,
            null, null, "upper(" + ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + ") ASC");
    Integer contactsCount = cursor.getCount(); // get how many contacts you have in your contacts list
    if (contactsCount > 0)
    {
        while(cursor.moveToNext())
        {
            LocalContacts  localContacts = new LocalContacts();
            String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
            String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

            if (Integer.parseInt(cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
            {
                //the below cursor will give you details for multiple contacts
                Cursor pCursor = cntx.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,
                        ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?",
                        new String[]{id}, null);
                // continue till this cursor reaches to all phone numbers which are associated with a contact in the contact list
                while (pCursor.moveToNext())
                {   //String isStarred      = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.STARRED));
                    String phoneNo  = pCursor.getString(pCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                    String phoneName    = pCursor.getString(pCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                    String photo    = pCursor.getString(pCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_URI));

                    //localContactsName.add(contactName+"");
                    //  localContactsNumber.add(phoneNo.replaceAll("[\\s\\-\\.\\^:,]",""));

                    localContacts.name = contactName+"";
                    localContacts.number = phoneNo.replaceAll("[\\s\\-\\.\\^:,]","")+"";
                    localContacts.photo = photo;
                    localContactsObj.add(localContacts);

                }
                pCursor.close();
            }
        }

    }
    cursor.close();
}