Android : 联系人 Turtorial

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/

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值