import java.util.ArrayList;
import java.util.List;
import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.provider.ContactsContract;
import com.example.contactsutils.bean.ContactInfo;
/**
* 获取联系人工具类
* @author hq*
*/
public class ContactUtil {
/**
* 说明 这个方法是干嘛用的
* @param ctx 上下文
* @return 集合
*/
public static List<ContactInfo> getContacts(Context ctx) {
List<ContactInfo> list = new ArrayList<ContactInfo>();
ContentResolver contentResolver = ctx.getContentResolver();
Cursor cursor = contentResolver.query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
ContactInfo info = new ContactInfo();
int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID);
int displayNameColumn = cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
// 获得联系人的ID
String contactId = cursor.getString(idColumn);
// 获得联系人姓名
String displayName = cursor.getString(displayNameColumn);
String phoneNumber=null;
String emailAddress = null;
// 查看联系人有多少个号码,如果没有号码,返回0
int phoneCount = cursor
.getInt(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (phoneCount > 0) {
// 获得联系人的电话号码列表
Cursor phoneCursor = contentResolver.query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ "=" + contactId, null, null);
if (phoneCursor.moveToFirst()) {
// 遍历所有的联系人下面所有的电话号码
phoneNumber = phoneCursor
.getString(phoneCursor
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phoneCursor.close();
}
//查询联系人所有邮箱地址
Cursor emailsCursor = contentResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ "=" + contactId, null, null);
if(emailsCursor.moveToFirst()){
emailAddress = emailsCursor
.getString(emailsCursor
.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
}
emailsCursor.close();
//System.out.println("ID:" + contactId);
//System.out.println("NAME:" + displayName);
//System.out.println("NUMBER:" + phoneNumber);
//System.out.println("EMAIL:" + emailAddress);
info.setId(contactId);
info.setName(displayName);
info.setPhone(phoneNumber);
info.setEmail(emailAddress);
list.add(info);
}
cursor.close();
return list;
}
}
业务bean
package com.example.contactsutils.bean;
public class ContactInfo {
/**
* 联系人姓名
*/
private String name;
/**
* 联系人id
*/
private String id;
/**
* 联系人电话
*/
private String phone;
/**
* 联系人邮箱
*/
private String email;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Override
public String toString() {
return "ContactInfo [name=" + name + ", id=" + id + ", phone=" + phone
+ ", email=" + email + "]";
}
}