查询系统所有联系人信息

public class ContactInfoProvider {

/**
* 返回系统所有的联系人信息
* @param context
* @return
*/
public static List<ContactInfo> getContactInfos(Context context) {
// 1.查询raw_contact表获取联系人的id
ContentResolver resolver = context.getContentResolver();
// 获取raw_contact表对应的uri
Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");
Uri dataUri = Uri.parse("content://com.android.contacts/data");

Cursor cursor = resolver.query(uri, null, null, null, null);
List<ContactInfo> infos = new ArrayList<ContactInfo>();
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while (cursor.moveToNext()) {
String id = cursor.getString(cursor.getColumnIndex("contact_id"));
if (id != null) {
Cursor dataCursor = resolver.query(dataUri, null,
"raw_contact_id=?", new String[] { id }, null);
ContactInfo info = new ContactInfo();
// String[] names = dataCursor.getColumnNames();
while (dataCursor.moveToNext()) {

String data1 = dataCursor.getString(dataCursor
.getColumnIndex("data1"));
String mimetype = dataCursor.getString(dataCursor
.getColumnIndex("mimetype"));
if(mimetype.contains("phone")){
info.setPhone(data1);
}else if(mimetype.contains("name")){
info.setName(data1);
}
}
infos.add(info);
dataCursor.close();
}
}
cursor.close();

return infos;
}
}

public class ContactInfo {
private String name;
private String phone;
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;
}

}

原文地址:https://www.cnblogs.com/bravolove/p/4988144.html