Android通讯录ContactsContract增删查改
通讯录是手机中一个非常重要的功能,可以帮助我们保存和管理联系人信息。在Android系统中,我们可以通过ContactsContract来操作通讯录,实现联系人的增删查改等功能。
ContactsContract简介
ContactsContract是Android系统中提供的一个内容提供器,它包含了联系人、电话号码、电子邮件等通讯录信息的数据结构。通过ContactsContract,我们可以方便地对通讯录进行操作。
ContactsContract的基本操作
查询联系人
我们可以使用ContentResolver来查询联系人信息,代码示例如下:
// 定义查询的列
String[] projection = new String[]{ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER};
// 查询联系人信息
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, projection, null, null, null);
if (cursor != null && cursor.getCount() > 0) {
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// 处理联系人信息
}
}
添加联系人
我们可以使用ContentResolver来添加联系人信息,代码示例如下:
ContentValues values = new ContentValues();
values.put(ContactsContract.RawContacts.ACCOUNT_TYPE, null);
values.put(ContactsContract.RawContacts.ACCOUNT_NAME, null);
Uri rawContactUri = getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);
values.clear();
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, "John Doe");
getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values);
删除联系人
我们可以使用ContentResolver来删除联系人信息,代码示例如下:
String where = ContactsContract.Data.DISPLAY_NAME + " = ?";
String[] params = new String[]{"John Doe"};
getContentResolver().delete(ContactsContract.RawContacts.CONTENT_URI, where, params);
更新联系人
我们可以使用ContentResolver来更新联系人信息,代码示例如下:
ContentValues values = new ContentValues();
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "1234567890");
String where = ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME + "= ?";
String[] params = new String[]{"John Doe"};
getContentResolver().update(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, values, where, params);
总结
通过ContactsContract,我们可以方便地对Android系统中的通讯录进行增删查改等操作,为用户提供更好的联系人管理体验。
pie
title ContactsContract功能分布
"查询联系人": 30
"添加联系人": 25
"删除联系人": 20
"更新联系人": 25
希望本文对你了解Android通讯录ContactsContract增删查改有所帮助,欢迎继续关注更多相关内容!