在Android平台上,获取联系人资料是一项常见的任务,这通常涉及到对Android系统提供的Content Provider机制的使用,特别是Contact Provider。在本教程中,我们将深入探讨如何利用`Provider.Contact`来访问和操作用户设备上的联系人数据。 Content Provider是Android系统提供的一种机制,用于在应用程序之间共享数据。它扮演着数据库的角色,但接口更面向对象,使得数据访问更为简便。在Android中,Contact Provider是负责管理设备上所有联系人信息的Content Provider。 1. **理解Content Provider** - Content Provider通过定义 Uri(统一资源标识符)来标识数据集。 - 使用`ContentResolver`与Content Provider进行交互,它是一个接口,提供了增删查改数据的方法。 - `Cursor`是Content Provider返回的数据结构,类似于SQL查询的结果集,可以遍历和读取数据。 2. **获取Contact Provider的Uri** - 获取联系人数据的基本Uri是`ContactsContract.Contacts.CONTENT_URI`。 - 通过Uri的`buildUpon()`方法,可以构建查询特定部分联系人的Uri,例如查询某个ID的联系人或指定筛选条件的联系人。 3. **查询Contact数据** - 使用`ContentResolver.query()`方法执行查询操作,参数包括Uri、要选择的列、选择条件、分组和排序顺序。 - 查询结果返回一个Cursor对象,可以通过`moveToFirst()`, `moveToNext()`, `getColumnIndex()`, `getString()`等方法遍历和读取数据。 4. **读取Contact信息** - 联系人信息包括姓名、电话、电子邮件等。例如,通过`ContactsContract.CommonDataKinds.Phone`和`ContactsContract.CommonDataKinds.Email`类来获取电话号码和电子邮件地址。 - 数据通常存储在多个表中,需要通过联系人的ID(`ContactsContract.Contacts._ID`)连接到这些数据表。 5. **写入Contact数据** - 写入联系人数据需要使用`ContentResolver.insert()`方法,创建一个`ContentValues`对象来存储要插入的数据键值对。 - 更新和删除操作则分别使用`ContentResolver.update()`和`ContentResolver.delete()`方法。 6. **权限管理** - 访问联系人数据需要在AndroidManifest.xml中声明`READ_CONTACTS`和`WRITE_CONTACTS`权限。 7. **EX05_10示例** - 这个压缩包中的"EX05_10"文件可能是一个代码示例或练习,它可能展示了如何创建一个简单的应用来查询并显示设备上的联系人列表。 - 可能包含了如何使用`ContentResolver`查询联系人,处理返回的`Cursor`,以及在UI上显示查询结果的步骤。 在实际开发中,开发者需要根据具体需求,灵活运用以上知识点,如筛选特定类型的联系人,或者根据用户输入进行模糊搜索等。同时,考虑到性能和用户体验,应合理使用异步操作来避免阻塞主线程。熟悉并熟练掌握Content Provider的使用,对于任何Android开发者来说都是至关重要的。

























































- 1


- 粉丝: 96
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2018移动互联网概念及产品介绍ppt模板.pptx
- MACOSX上安装Windows全攻略.doc
- JAVA手机游戏(堡垒)的设计方案与开发.doc
- 网站HTTPS加密应用交付解决方案.pdf
- (源码)基于Arduino IDE的Bruin Supermileage HS板控制系统.zip
- vb+SQL学生信息管理系统-毕业论文.doc
- 论翻转课堂在士官计算机项目化教学中的应用.docx
- 单片机课设自动打铃器设计方案.doc
- EPSON软件常用指令介绍.ppt
- 小学计算机教学中小学生信息素养的培养策略.docx
- 基于单片机的数字温度计大学本科方案设计书.doc
- 基于入侵检测技术在电力信息网络安全中的应用探析.docx
- Java和SQL-Server2000开发职工和工资管理(全过程及代码).doc
- 基于网络平台的高校思政课实践教学构建分析.docx
- (源码)基于C++语言的数据结构与算法实践.zip
- 现代企业计算机辅助决策系统的探究.docx


