利用内容提供者获取联系人信息

    xiaoxiao2025-07-11  9

    package com.home.contactsutils.uti; import java.util.ArrayList; import java.util.List; import android.content.ContentResolver; import android.content.Context; import android.database.Cursor; import android.provider.ContactsContract; import com.example.contactsutils.bean.ContactInfo;

    /**

      * 获取联系人工具类

      * @author hq   *   */ public class ContactUtil { /** * 说明 这个方法是干嘛用的 * @param ctx 上下文 * @return 集合 */ public static List<ContactInfo> getContacts(Context ctx) { List<ContactInfo> list = new ArrayList<ContactInfo>(); ContentResolver contentResolver = ctx.getContentResolver(); Cursor cursor = contentResolver.query( ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { ContactInfo info = new ContactInfo(); int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID); int displayNameColumn = cursor .getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); // 获得联系人的ID String contactId = cursor.getString(idColumn); // 获得联系人姓名 String displayName = cursor.getString(displayNameColumn); String phoneNumber=null; String emailAddress = null; // 查看联系人有多少个号码,如果没有号码,返回0 int phoneCount = cursor .getInt(cursor .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if (phoneCount > 0) { // 获得联系人的电话号码列表 Cursor phoneCursor = contentResolver.query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null); if (phoneCursor.moveToFirst()) {    // 遍历所有的联系人下面所有的电话号码  phoneNumber = phoneCursor .getString(phoneCursor .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); } phoneCursor.close(); }

    //查询联系人所有邮箱地址

    Cursor emailsCursor = contentResolver.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null,  ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=" + contactId, null, null); if(emailsCursor.moveToFirst()){ emailAddress = emailsCursor .getString(emailsCursor .getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); } emailsCursor.close(); //System.out.println("ID:" + contactId); //System.out.println("NAME:" + displayName); //System.out.println("NUMBER:" + phoneNumber); //System.out.println("EMAIL:" + emailAddress); info.setId(contactId); info.setName(displayName); info.setPhone(phoneNumber); info.setEmail(emailAddress); list.add(info); } cursor.close(); return list; }

    }

    业务bean

    package com.example.contactsutils.bean; public class ContactInfo { /** * 联系人姓名 */ private String name; /** * 联系人id */ private String id; /** * 联系人电话 */ private String phone; /** * 联系人邮箱 */ private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phone = phone; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } @Override public String toString() { return "ContactInfo [name=" + name + ", id=" + id + ", phone=" + phone + ", email=" + email + "]"; } }

    转载请注明原文地址: https://ju.6miu.com/read-1300581.html
    最新回复(0)