这个工具类只获取了手机联系人的姓名和电话号码,
1、首先将这个姓名、电话号码封装成domain:
package com.wang.domain; public class ContactInfo { private String name; private String phono; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getPhono() { return phono; } public void setPhono(String phono) { this.phono = phono; } }
2、工具类:
package com.wang.engine; import java.util.ArrayList; import java.util.List; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.net.Uri; import com.wang.mobilesafe.domain.ContactInfo; /** * 提供手机联系人信息的类 * * @author HeJW * */ public class ContactInfoProvider { /** * 获取手机系统里面所有联系人信息 * * @return 所有联系人信息的集合 */ public static List<ContactInfo> getContactInfos(Context context) { List<ContactInfo> infos = new ArrayList<ContactInfo>(); ContentResolver resolver = context.getContentResolver(); Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); Uri dataUri = Uri.parse("content://com.android.contacts/data"); Cursor cursor = resolver.query(uri, new String[] { "contact_id" }, null, null, null); while (cursor.moveToNext()) { String id = cursor.getString(0); if (id != null) { ContactInfo info = new ContactInfo(); Cursor dataCursor = resolver.query(dataUri, new String[] { "mimetype", "data1" }, "raw_contact_id=?", new String[] { id }, null); while (dataCursor.moveToNext()) { String mime = dataCursor.getString(0); String data1 = dataCursor.getString(1); if ( "vnd.android.cursor.item/name".equals(mime) ) { info.setName(data1); } else if ( "vnd.android.cursor.item/phone_v2".equals(mime) ) { info.setPhono(data1); } } infos.add(info); dataCursor.close(); } } cursor.close(); return infos; } }