How to get contacts in Android

后端 未结 1 1475
旧时难觅i
旧时难觅i 2021-01-06 06:15

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

相关标签:
1条回答
  • 2021-01-06 07:03

    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();
    
    0 讨论(0)
提交回复
热议问题