Android基礎:獲取手機聯絡人工具類
阿新 • • 發佈:2019-01-08
Bean:
public class ContactInfo {
public String id;
public String name;
public String phone;
}
ContactUtils.java
public class ContactUtils { /** * 獲取聯絡人資料 * * @param context * @return */ public static List<ContactInfo> getAllContacts(Context context) { List<ContactInfo> list = new ArrayList<ContactInfo>(); // 獲取解析者 ContentResolver resolver = context.getContentResolver(); // 訪問地址 Uri raw_contacts = Uri.parse("content://com.android.contacts/raw_contacts"); Uri data = Uri.parse("content://com.android.contacts/data"); // 查詢語句 // select contact_id from raw_contacts;//1 2 3 4 // select mimetype,data1 from view_data where raw_contact_id=3; // Cursor cursor=resolver.query(訪問地址, 返回欄位 null代表全部, where 語句, 引數, 排序) Cursor cursor = resolver.query(raw_contacts, new String[] { "contact_id" }, null, null, null); while (cursor.moveToNext()) { // getColumnIndex根據名稱查列號 String id = cursor.getString(cursor.getColumnIndex("contact_id")); // 建立例項 ContactInfo info = new ContactInfo(); info.id = id; Cursor item = resolver.query(data, new String[] { "mimetype", "data1" }, "raw_contact_id=?", new String[] { id }, null); while (item.moveToNext()) { String mimetype = item.getString(item.getColumnIndex("mimetype")); String data1 = item.getString(item.getColumnIndex("data1")); if ("vnd.android.cursor.item/name".equals(mimetype)) { info.name = data1; } else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) { info.phone = data1; } } item.close(); // 新增集合 list.add(info); } cursor.close(); return list; } }