Android系统添加联系人

在Android系统中,我们可以通过程序动态地添加联系人,为用户提供更好的使用体验。本文将介绍如何在Android应用中实现添加联系人的功能。

1. 获得读写联系人权限

在AndroidManifest.xml文件中添加以下权限:

<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />

2. 添加联系人

我们可以使用ContentResolver来操作联系人数据库,以下是添加联系人的代码示例:

ContentResolver resolver = getContentResolver();
ContentValues values = new ContentValues();
Uri rawContactUri = resolver.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");
resolver.insert(ContactsContract.Data.CONTENT_URI, values);

values.clear();
values.put(ContactsContract.Data.RAW_CONTACT_ID, rawContactId);
values.put(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
values.put(ContactsContract.CommonDataKinds.Phone.NUMBER, "1234567890");
values.put(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE);
resolver.insert(ContactsContract.Data.CONTENT_URI, values);

3. 结果展示

通过以上代码,我们成功向联系人数据库中添加了一个名为"John Doe"的联系人,并且为其添加了手机号码为"1234567890"。

类图

以下是联系人添加功能的类图:

classDiagram
    class ContentResolver {
        + insert(uri: Uri, values: ContentValues): Uri
    }
    class ContentValues {
        + put(key: String, value: Object)
    }
    class Uri
    class ContactsContract.RawContacts {
        + CONTENT_URI
    }
    class ContactsContract.Data {
        + CONTENT_URI
    }
    class ContactsContract.CommonDataKinds.StructuredName {
        + CONTENT_ITEM_TYPE
        + DISPLAY_NAME
    }
    class ContactsContract.CommonDataKinds.Phone {
        + CONTENT_ITEM_TYPE
        + NUMBER
        + TYPE
        + TYPE_MOBILE
    }

通过以上步骤,我们成功实现了在Android系统中添加联系人的功能。添加联系人可以为用户提供更便捷的通讯方式,增强用户体验。同时,开发者可以根据需求对联系人信息进行自定义,为用户提供更灵活的联系人管理功能。如果您有任何问题或疑问,欢迎留言交流!