public class ContactsDao {
private Context context;
// 联系人信息名字
private static String display_name;
// // 联系人信息ID
private static String contactId;
// 联系人信息Uri
private static Uri contentUri;
// 联系人号码Uri字段
private static Uri phoneContentUri;
// 联系人的号码ID字段
private static String contactId2;
// 联系人号码字段
private static String contactNum;
// 联系人邮箱的Uri
private static Uri contactEmailUri;
// 联系人邮箱字段
private static String contactEmailData;
// 联系人邮箱ID字段
private static String contactEmailID; android
static {
contentUri = ContactsContract.Contacts.CONTENT_URI;
phoneContentUri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
contactEmailUri = ContactsContract.CommonDataKinds.Email.CONTENT_URI;
display_name = ContactsContract.Contacts.DISPLAY_NAME;
contactId = ContactsContract.Contacts._ID;
contactId2 = ContactsContract.CommonDataKinds.Phone.CONTACT_ID;
contactNum = ContactsContract.CommonDataKinds.Phone.NUMBER;
contactEmailID = ContactsContract.CommonDataKinds.Email.CONTACT_ID;
contactEmailData = ContactsContract.CommonDataKinds.Email.DATA;
} this
public ContactsDao(Context context) {
super();
this.context = context;
} get
public Cursor findLocalContacts() {
Cursor cursor = context.getContentResolver().query(contentUri, null, null, null, null);
// 联系人名字
String displayName = cursor.getString(cursor.getColumnIndex(display_name));
// 联系人ID
String contactsID = cursor.getString(cursor.getColumnIndex(contactId));
// 使用ContentResolver查找联系人电话号码
Cursor phones = context.getContentResolver().query(phoneContentUri, null, contactId2 + "=" + contactsID, null, null); io
// 遍历查询结果,获取联系人的多个号码
while (phones.moveToNext()) {
phones.getString(phones.getColumnIndex(contactNum));
}
phones.close(); class
// 使用ContentResolver查找联系人联系人邮箱
Cursor emails = context.getContentResolver().query(contactEmailUri, null, contactEmailID + "=" + contactsID, null, null);
while (emails.moveToNext()) {
emails.getString(emails.getColumnIndex(contactEmailData));
}
emails.close();
cursor.close(); email
return cursor;
} 遍历
private void insetLocalContacts() {
// 建立一个空的ContantValues
ContentValues values = new ContentValues();
// 向RawContacts.CONTENT_URI执行空值插入,获取系统返回的rawContactId
Uri rawContactUri = context.getContentResolver().insert(RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
values.clear(); 权限
// *****************添加联系人姓名***************
values.put(Data.RAW_CONTACT_ID, rawContactId);
// 设置内容类型
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
// 设置联系人名字
values.put(StructuredName.GIVEN_NAME, "请输入姓名");
// 向联系人URI添加联系人姓名
context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
values.clear(); 查询
// *****************添加联系人电话***************
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
// 设置联系人的号码
values.put(Phone.NUMBER, "联系人电话");
values.put(Phone.TYPE, Phone.TYPE_MOBILE);
// 向联系人URI添加联系人电话
context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
values.clear(); static
// *****************添加联系人邮箱***************
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Email.CONTENT_ITEM_TYPE);
values.put(Email.DATA, "请输入邮箱");
values.put(Email.TYPE, Email.TYPE_WORK);
context.getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
} }
<!-- 读取联系人权限 --> <uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 写入联系人的权限 --> <!-- <uses-permission android:name="android.permission.WRITE_CONTACTS" /> -->