Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get contacts in Android

Tags:

android

I am a developing an application for composing sms in android platform. For that i need to get "Contacts", "Recent Contacts" and "Groups". Please tell me any tutorial or the code of how to do it. When we click on any of these three buttons there should be contacts along with a checkbox for selecting multiple contacts. Thanks.

like image 367
Ayush Pateria Avatar asked Dec 03 '22 00:12

Ayush Pateria


1 Answers

here is the code to get contacts programmatically

    ContentResolver cr = getContentResolver();
     Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null,
    null, null, null);
  String id = null, name = null, email = null, phone = null, note = null, orgName =     null, title = null;
  String Phone1 = "unknown", Phone2 = "unknown", Phone3 = "unknown", type1 = "unknown",        type2 = "unknown", type3 = "unknown";
  int size = cur.getCount();
if (cur.getCount() > 0) {
    int cnt = 1;
    while (cur.moveToNext())
    {
        email = "";
        name = "";
        cnt++;
        id = cur.getString(cur
                .getColumnIndex(ContactsContract.Contacts._ID));
        name = cur
                .getString(cur
                        .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

        if (name != null && name != "") {
            if (!checkEmail(name)) {
                email = "";

            } else {
                email = name;
                name = "";
            }
        }
        if (Integer
                .parseInt(cur.getString(cur
                        .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)

        {
            System.out.println("name : " + name);
            Cursor pCur = cr
                    .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                            null,
                            ContactsContract.CommonDataKinds.Phone.CONTACT_ID
                                    + " = ?", new String[] { id },
                            null);

            Phone1 = " ";
            Phone2 = " ";
            Phone3 = " ";
            while (pCur.moveToNext())
            {
                String phonetype = pCur
                        .getString(pCur
                                .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
                String MainNumber = pCur
                        .getString(pCur
                                .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                if (phonetype.equalsIgnoreCase("1")) {
                    Phone1 = MainNumber;
                    type1 = "home";
                } else if (phonetype.equalsIgnoreCase("2")) {
                    Phone2 = MainNumber;
                    type2 = "mobile";
                } else {
                    Phone3 = MainNumber;
                    type3 = "work";
                }
            }
            pCur.close();

        }
            Cursor addrCur = cr
                    .query(ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI,
                            null,
                            ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID
                                    + " = ?", new String[] { id },
                            null);
            if (addrCur.getCount() == 0) {
                addbuffer.append("unknown");
            } else {
                int cntr = 0;
                while (addrCur.moveToNext()) {

                    cntr++;
                    String poBox = addrCur
                            .getString(addrCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX));
                    if (poBox == null) {
                        poBox = " ";
                    }
                    String street = addrCur
                            .getString(addrCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET));
                    if (street == null) {
                        street = " ";
                    }
                    String neb = addrCur
                            .getString(addrCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.NEIGHBORHOOD));
                    if (neb == null) {
                        neb = " ";
                    }
                    String city = addrCur
                            .getString(addrCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY));
                    if (city == null) {
                        city = " ";
                    }
                    String state = addrCur
                            .getString(addrCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION));
                    if (state == null) {
                        state = " ";
                    }
                    String postalCode = addrCur
                            .getString(addrCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE));
                    if (postalCode == null) {
                        postalCode = " ";
                    }
                    String country = addrCur
                            .getString(addrCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY));
                    if (country == null) {
                        country = " ";
                    }

                    String type = addrCur
                            .getString(addrCur
                                    .getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE));
                    if (type == null) {
                        type = " ";
                    }
                }

            }

            addrCur.close();

            String noteWhere = ContactsContract.Data.CONTACT_ID
                    + " = ? AND " + ContactsContract.Data.MIMETYPE
                    + " = ?";
            String[] noteWhereParams = new String[] {
                    id,
                    ContactsContract.CommonDataKinds.Note.CONTENT_ITEM_TYPE };
            Cursor noteCur = cr.query(
                    ContactsContract.Data.CONTENT_URI, null,
                    noteWhere, noteWhereParams, null);

            note = " ";

            if (noteCur.moveToFirst()) {
                note = noteCur
                        .getString(noteCur
                                .getColumnIndex(ContactsContract.CommonDataKinds.Note.NOTE));

                if (note == null) {
                    note = " ";
                }
            }
            noteCur.close();
            String orgWhere = ContactsContract.Data.CONTACT_ID
                    + " = ? AND " + ContactsContract.Data.MIMETYPE
                    + " = ?";
            String[] orgWhereParams = new String[] {
                    id,
                    ContactsContract.CommonDataKinds.Organization.CONTENT_ITEM_TYPE };
            Cursor orgCur = cr.query(
                    ContactsContract.Data.CONTENT_URI, null,
                    orgWhere, orgWhereParams, null);
            orgName = " ";
            if (orgCur.moveToFirst()) {
                orgName = orgCur
                        .getString(orgCur
                                .getColumnIndex(ContactsContract.CommonDataKinds.Organization.COMPANY));

            }
            if (orgName == null) {
                orgName = " ";
            }
            orgCur.close();

            Cursor emailCur = cr
                    .query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,
                            null,
                            ContactsContract.CommonDataKinds.Email.CONTACT_ID
                                    + " = ?", new String[] { id },
                            null);
            email = "unknown";
            while (emailCur.moveToNext()) {

                email = emailCur
                        .getString(emailCur
                                .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
                String emailType = emailCur
                        .getString(emailCur
                                .getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE));

                if (email == null) {
                    email = "unknown";
                }
                if (emailType.equalsIgnoreCase("1")) {
                } else {
                }
            }

            // add
            emailCur.close();
like image 118
Harsh Trivedi Avatar answered Dec 28 '22 09:12

Harsh Trivedi