通讯录获取
通过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;
}