/**
* 获取通讯录数据
*/
public class ContactUtils {
@SuppressLint("Range")
public static ArrayList<MyContacts> getAllContacts(Context context) {
ArrayList<MyContacts> contacts = new ArrayList<MyContacts>();
Cursor cursor = context.getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
//新建一个联系人实例
MyContacts temp = new MyContacts();
String contactId = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts._ID));
//获取联系人姓名
String name = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String string = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.PHOTO_URI));
temp.name = name;
//获取联系人电话号码
Cursor phoneCursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null);
while (phoneCursor.moveToNext()) {
String phone = phoneCursor.getString(phoneCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
phone = phone.replace("-", "");
phone = phone.replace(" ", "");
temp.phone = phone;
}
temp.photo = string;
//获取联系人备注信息
Cursor noteCursor = context.getContentResolver().query(
ContactsContract.Data.CONTENT_URI,
new String[]{ContactsContract.Data._ID, ContactsContract.CommonDataKinds.Nickname.NAME},
ContactsContract.Data.CONTACT_ID + "=?" + " AND " + ContactsContract.Data.MIMETYPE + "='"
+ ContactsContract.CommonDataKinds.Nickname.CONTENT_ITEM_TYPE + "'",
new String[]{contactId}, null);
if (noteCursor.moveToFirst()) {
do {
@SuppressLint("Range") String note = noteCursor.getString(noteCursor
.getColumnIndex(ContactsContract.CommonDataKinds.Nickname.NAME));
temp.note = note;
Log.i("note:", note);
} while (noteCursor.moveToNext());
}
contacts.add(temp);
//记得要把cursor给close掉
phoneCursor.close();
noteCursor.close();
}
cursor.close();
return contacts;
}
}
/**
* 通讯录实体类
*/
public class MyContacts {
public String name;
public String phone;
public String note;
public String photo;
@Override
public String toString() {
return "MyContacts{" +
"name='" + name + '\'' +
", phone='" + phone + '\'' +
", note='" + note + '\'' +
", photo=" + photo +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getNote() {
return note;
}
public void setNote(String note) {
this.note = note;
}
public String getPhoto() {
return photo;
}
public void setPhoto(String photo) {
this.photo = photo;
}
}