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增删查改有所帮助,欢迎继续关注更多相关内容!