通讯录通过id找邮箱和手机

通讯录获取
通过id找所有手机号和所有邮箱

   public ContactInfos getLocalContactInfo(Activity context) {

        ContactInfos contactInfo = new ContactInfos();

        List<ContactInfos.ContactListBean> contactListBeanList = new ArrayList<>();
        Cursor cur = queryContact(context, PROJECTION);

        if (cur != null && cur.moveToFirst()) {
            final int displayNameIndex = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
            final int hasPhoneNumberIndex = cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER);
            final int idIdex = cur.getColumnIndex(ContactsContract.Contacts._ID);

            do {
                String id = cur.getString(idIdex);
                String displayName = cur.getString(displayNameIndex);
                ContactInfos.ContactListBean contactListBean = new ContactInfos.ContactListBean();

                contactListBean.setContactsName(displayName);
                int phoneCount = cur.getInt(hasPhoneNumberIndex);

                if (phoneCount > 0) {
                    //获取手机信息
                    Cursor phonesCursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
                            PROJECTIONPHONE, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + id,
                            null, null);
                    if (phonesCursor != null && phonesCursor.moveToFirst()) {
                        List<ContactInfos.ContactListBean.PhoneListBean> phoneList = new ArrayList<>();
                        final  int numberIndex = phonesCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER);
                        final int numberTypeIndex = phonesCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE);
                        do {
                            ContactInfos.ContactListBean.PhoneListBean phoneListBean = new ContactInfos.ContactListBean.PhoneListBean();
                            String phoneNumber = phonesCursor.getString(numberIndex);
                            int type = phonesCursor.getInt(numberTypeIndex);
                            phoneListBean.setType(type);
                            phoneListBean.setNumber(phoneNumber);

                            phoneList.add(phoneListBean);
                        } while (phonesCursor.moveToNext());
                        contactListBean.setPhoneList(phoneList);
                    }

                    phonesCursor.close();
                }

                // 获得联系人的EMAIL
                Cursor emailCur = context.getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, PROJECTIONEMAIL, ContactsContract.CommonDataKinds.Email.CONTACT_ID + "=" + id, null, null);
                if (emailCur != null && emailCur.moveToFirst()) {
                    List<ContactInfos.ContactListBean.EmailListBean> emailListBeans = new ArrayList<>();
                    final int emailIndex = emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA1);
                    final int emailTypeIndex = emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.TYPE);
                    do {
                        // 遍历所有的email
                        ContactInfos.ContactListBean.EmailListBean emailListBean = new ContactInfos.ContactListBean.EmailListBean();

                        String email = emailCur.getString(emailIndex);
                        int type = emailCur.getInt(emailTypeIndex);
                        emailListBean.setEmail(email);
                        emailListBean.setType(type);
                        emailListBeans.add(emailListBean);
                    } while (emailCur.moveToNext());
                    contactListBean.setEmailList(emailListBeans);

                }
                emailCur.close();
                contactListBeanList.add(contactListBean);
            } while (cur.moveToNext());
            contactInfo.setContactList(contactListBeanList);
            contactInfo.setTotal(contactListBeanList.size());
            Log.e(TAG, "infoList.size()==" + contactListBeanList.size());
            String json = new Gson().toJson(contactInfo);
            cur.close();
        }
        return contactInfo;
    }
发布了277 篇原创文章 · 获赞 84 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/qq_26296197/article/details/102971653
今日推荐