Android本身提供了与“联系人”应用程序,使用起来也很方便,它包括了一些常用的数据类型字段,比如:联系人姓名、电话号码、IM地址、Email地址等等。但是Android存储联系人信息时并不是像我们想象的那样:直接开一张表,每一行就对应一个联系人,其中一行上包括了所有的数据域类型,如果没有这个数据类型的话,就空着。

事实上完全不是像我们这样想得这么简单,要知道对于查询或者存储联系人信息,在设计android内部预定义联系人数据库表时,必须要考虑今后版本或功能扩展上的兼容性,以及查询、读取、修改过程的效率以及安全稳定性。仔细学习后发现联系人系统预定义的数据库的存储还是比较复杂的。

在Android1.x 版本中,提供的API都是在android.provider.Contacts下面的,但是Android2.1以后,原来在android.provider.Contacts下面的这些API都被depreciate了,取而代之的是查询效率和数据存储上更加规范的API:com.provider.ContactsContract。

在SDK文档中有这么一句话描述ContactsContract:

The contract between the contacts provider and applications.也就是说它提供了应用程序和contacts provider之间的一些接口协议和规定,这样app在调用contacts provider相关的数据时,就比较方便。(ps:其实我的感受是,SDK太笨重了,API太多,每次要用的时候,都需要到外文网上找对应的tutorial来学习,下面我就给出了一份tutorial链接)

ContactsContract defines an extensible database of contact-related information. Contact information is stored in a three-tier data model:

ContactsContract定义了与联系人相关信息的一个可扩展的数据库。Contact相关的信息就是存储在三层数据模型中:

1、ContactsContract.Data

2、 ContactsContract.RawContacts

3、 ContactsContract.Contacts

对这几个重要类的介绍可以看SDK,比较复杂,慢慢理解还是会看懂一些的。

好了,当了解了这几个类的作用以及对应的API接口以后,你可能还是一头雾水,还是不知道怎么用,这时就可以看一下下面我找到的一个tutorial,专门讲解如何使用com.provider.ContactsContract包下面的方法来对“联系人”数据库进行读取、写入、修改操作。

我觉得大家可以把重要有价值的网页保存在本地,以防到时网页被删掉了不能访问的尴尬。

网址:http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/1/

总共有五页的教程,看了对ContactsContract的本质会有更深入的理解。另外从它给出的源代码中,也可以看出它架构设计的合理性。

事实上,里面还包括了一些SQLite的一些操作,下面也有一份关于Android的tutorial,很好:

http://www.higherpass.com/Android/Tutorials/Accessing-Data-With-Android-Cursors/

更多相关文章

  1. Android(安卓)Database【origin】
  2. Android捕获全局异常信息并实现上传
  3. Android(安卓)studio 不用数据线调试真机
  4. android内置数据库的一个错误解决方案:Can't upgrade read-only d
  5. [置顶] Android异步加载数据库和多线程编程
  6. Android(安卓)对象型数据库 db4o
  7. Android(安卓)富文本编辑器 图文混排
  8. Android:SMS TEL MAIL 使用集合
  9. Android中使用GreenDao的坑整理

随机推荐

  1. Android(安卓)横向ScrollView照片浏览器
  2. Android(安卓)高级UI
  3. [置顶] android 新浪微博客户端的表情功
  4. Android(安卓)正移植到C#
  5. Android方法数
  6. AndroidStudio Build过程解析
  7. Android(安卓)企业需求与开发者状况简析(
  8. 为了获取下一个10亿用户,Google的布局其实
  9. Android:规范命名,让合作更加愉快
  10. Android——内存篇:Android中5种最常见的