查询手机内联系人

public class Query {
//查询联系人的方法
public static List<Contact> queryContact(Context context){
//创建一个集合对象
List<Contact> contacts=new ArrayList<Contact>();
//先查询raw_contact表 这个表有几条联系人数据
//由于联系人数据通过内容提供者暴露出来,所以我们可以通过内容解析操作数据库
Uri uri=Uri.parse("content://com.android.contacts/raw_contacts");
Uri dataUri=Uri.parse("content://com.android.contacts/data");
Cursor cursor=context.getContentResolver().query(uri,new String[]{"contact_id"},null,null,null);
while (cursor.moveToNext()){
String contact_id=cursor.getString(0);
if (contact_id!=null){
Contact contact=new Contact();
contact.setId(contact_id);
Cursor cursor1=context.getContentResolver().query(dataUri,new String[]{"data1","mimetype"},"raw_contact_id=?",new String[]{contact_id},null);
while (cursor1.moveToNext()){
String data1=cursor1.getString(0);
String mimetype=cursor1.getString(1);
//区分类型
if ("vnd.android.cursor.item/name".equals(mimetype)){
contact.setName(data1);
}
else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)){
contact.setPhone(data1);
}
}
//把contact放入集合
contacts.add(contact);
}



}
return contacts;


}
}

public class Contact {
private String id;
private String name;
private String phone;

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

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;
}
}
 
posted @ 2017-11-06 20:26  呀啦啦啦  阅读(325)  评论(0)    收藏  举报