Android入门教程:增删改查通讯录

2014-11-24 12:05:08 · 作者: · 浏览: 2

通讯录是ContentProvider的应用,通讯录由两部分组成:


(1)com.android.providers.contacts的ContentProvider:真正存储数据的ContentProvider


(2)com.android.contacts:运用ContentResolver获取数据的图形用户界面;


二、获取ContactProvider的源代码


如果要获取ContactProvider,则安装git,并打开git bash,输入


git clone https://android.googlesource.com/platform/packages/providers/ContactsProvider.git 即可;


为何要获取ContactProvider的源代码呢?


因为如果要访问ContentProvider,必须要了解URI的设置(authority,path等);只有查看源代码才能够知道;


AndroidManifest.xml为清单文件,列出了ContactProvider的authorities,以及要访问通讯录需要的权限;




表结构如下:










通讯录是存放在/data/data/com.android.providers.contacts/databases/contacts2.db,里面主要的表有:


(1)raw_contacts:存放联系人的ID,


_id属性为主键,声明为autoincrement,即不需要手动设置,其他属性也不需要手动设置就有默认值;


display_name属性为姓名;


(2)mimetypes:存放数据的类型,比如"vnd.android.cursor.item/name"表示“姓名”类型的数据,"vnd.android.cursor.item/phone_v2"表示“电话”类型的数据;


(3)data:存放具体的数据;


raw_contact_id属性用来连接raw_contacts表,每条记录表示一个具体数据;我们主要的数据(email、phone等)都存放在data表;


data1属性存放总数据;


data2属性:


-如果此记录存放姓名,则data2存放名;


-如果此记录存放电话,则data2存放类型,比如手机、家电;


-如果此记录存放组织,则data2存放类型,比如公司、其他;


-如果此记录存放地址,则data2存放类型,比如住宅,单位等;