import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.net.Uri;public class QueryContactsUtils {public static List<Contact> querycontacts(Context context) {// [0]创建一个集合List<Contact> contactList = new ArrayList<Contact>();// [1]先查询row_contacts表 的contact_id列 我们就知道一共有几条联系人Uri datauri = Uri.parse("content://com.android.contacts/data");Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");Cursor cursor = context.getContentResolver().query(uri,new String[] { "contact_id" }, null, null, null);while (cursor.moveToNext()) {String contact_id = cursor.getString(0);// 创建javabaen对象Contact contact = new Contact();if (contact_id != null) {contact.setId(contact_id);/** [2]根据contact_id去查询data表 查询data1列和mimetype !!view_data* 是由data表和mimetype表的组合*/Cursor datacursor = context.getContentResolver().query(datauri,new String[] { "data1", "mimetype" },"raw_contact_id =?", new String[] { contact_id }, null);while (datacursor.moveToNext()) {String data1 = datacursor.getString(0);String mimetype = datacursor.getString(1);// [3]根据mimetype区分数据类型if ("vnd.android.cursor.item/name".equals(mimetype)) {contact.setName(data1);} else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {contact.setPhone(data1);} else if ("vnd.android.cursor.item/email_v2".equals(mimetype)) {contact.setEmail(data1);}}// 把javabean对象添加到数组里contactList.add(contact);}}return contactList;}}
android入门,利用内容解析者 简单实现读取联系人
最新推荐文章于 2022-11-29 14:17:30 发布