查询手机内联系人
Posted 钱大少丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了查询手机内联系人相关的知识,希望对你有一定的参考价值。
联系人的创建查询
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; } }
创建一个Contact封装类
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; } }
以上是关于查询手机内联系人的主要内容,如果未能解决你的问题,请参考以下文章