Android 手机联系人开发之增删查改功能 Android 手机联系人开发之增删查改功能是 Android 开发中非常重要的一个模块,它涉及到联系人的添加、删除、查询和修改等操作。在 Android 中,联系人信息是存储在 contacts2.db 数据库中的,这个数据库中有三个重要的表:data、raw_contacts 和 mimetypes。这些表之间的关系是处理联系人信息的关键。 数据表介绍 1. data 表:存储联系人的具体信息,如姓名、电话号码、电子邮件等。 2. mimetypes 表:存储联系人信息的 MIME 类型,如电话号码、电子邮件等。 3. raw_contacts 表:存储联系人的基本信息,如联系人 ID、姓名等。 联系人查询模块 联系人查询模块是通过 ContentResolver 来实现的,ContentResolver 是 Android 中的一个接口,用于访问和操作联系人数据库。下面是一个简单的联系人查询示例代码: ```java public void number(String name1,long rawContactId) { // 使用 ContentResolver 查找联系人数据 Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { // 获取联系人 ID String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); // 获取联系人的名字 String contactName = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); if (name1.equals(contactName)) { // 使用 ContentResolver 查找联系人的电话号码和用户名 Cursor phone = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null); if (phone.moveToNext()) { String phoneNumber1 = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));// 电话号码 String phoneName1 = phone.getString(phone.getColumnIndex(Phone.DISPLAY_NAME));// 姓名 phoneNumber.setText(phoneNumber1); name.setText(phoneName1); } // 获取邮箱信息 Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,ContactsContract.CommonDataKinds.Email.CONTACT_ID+"="+contactId,null,null); while(emails.moveToNext()){ String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); // ... } } } } ``` 联系人添加模块 联系人添加模块是通过使用 ContentResolver 的 insert 方法来实现的。下面是一个简单的联系人添加示例代码: ```java ContentValues values = new ContentValues(); values.put(ContactsContract.Contacts.DISPLAY_NAME, "李晓明"); getContentResolver().insert(ContactsContract.RawContacts.CONTENT_URI, values); ``` 联系人删除模块 联系人删除模块是通过使用 ContentResolver 的 delete 方法来实现的。下面是一个简单的联系人删除示例代码: ```java getContentResolver().delete(ContactsContract.RawContacts.CONTENT_URI, ContactsContract.RawContacts.CONTACT_ID + " = " + contactId, null); ``` 联系人修改模块 联系人修改模块是通过使用 ContentResolver 的 update 方法来实现的。下面是一个简单的联系人修改示例代码: ```java ContentValues values = new ContentValues(); values.put(ContactsContract.Contacts.DISPLAY_NAME, "李晓明"); getContentResolver().update(ContactsContract.RawContacts.CONTENT_URI, values, ContactsContract.RawContacts.CONTACT_ID + " = " + contactId, null); ``` Android 手机联系人开发之增删查改功能是一个非常复杂的模块,它需要对 Android 中的联系人数据库有深入的了解和掌握,同时也需要对 ContentResolver 和 Cursor 等接口有深入的了解和掌握。
- 粉丝: 4
- 资源: 930
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (源码)基于Spring Boot框架的博客系统.zip
- (源码)基于Spring Boot框架的博客管理系统.zip
- (源码)基于ESP8266和Blynk的IR设备控制系统.zip
- (源码)基于Java和JSP的校园论坛系统.zip
- (源码)基于ROS Kinetic框架的AGV激光雷达导航与SLAM系统.zip
- (源码)基于PythonDjango框架的资产管理系统.zip
- (源码)基于计算机系统原理与Arduino技术的学习平台.zip
- (源码)基于SSM框架的大学消息通知系统服务端.zip
- (源码)基于Java Servlet的学生信息管理系统.zip
- (源码)基于Qt和AVR的FestosMechatronics系统终端.zip