android系统自带通讯录的深度研究
来源:互联网 发布:电力软件开发 编辑:程序博客网 时间:2024/04/28 04:15
先看2张图:
第一张效果图,本人对一个联系人经行了多种数据的添加,基本上讲系统自带的各种数据形式,比如电话,单位,邮件,都添加了一次
第二张图,系统自带的通讯录联系人的db数据库中的数据图:
第二张图就是第一张图在数据库中保存的数据。
数据是从33到62行的,45行数据不是空的,数据在data15的字段上保存的,由于屏幕大小问题后面的字段没有截全,但后面的字段除了data15表示联系人的图像,其他的完全看不懂。
在android系统自带的contact2.db数据库中有3个主要的表,分别是data,mimetypes,
raw-contacts,
data :该表负责保存各种联系人的数据等等
raw-contacts:该表能对数进行联系方面的过滤
mimetypes:该表能对数进行数据类别方面的过滤
在android4.0中mimetypes在数据库中的数据如下:
这里表示了数据的类别。
在data表中有几个重要的字段说一下:
Mimetype_id:这个字段表示这一行数据(确切的说是data1的数据)在mimetypes表中的数据类别id
raw_contact_id:这个字段表示这一行的数据(确切的说是data1的数据)是属于哪个联系人的。
Data1:这个字段存放所有的数据
Data2:这个表示data1中数据的具体类别,mimetypes中主要表示的大类别,比如是电话还是地址,邮件。而data2是对data1的进一步修饰比如单位电话,家庭电话。
目前已知的data2的值(只是指当mimetypes的大类别是电话号码的时候)及含义如下:
1:住宅电话
2:手机号
3:单位电话
5:住宅传真
6:寻呼机
7:其他
17:单位手机
18:单位寻呼机
19:助理
20:彩信
如果mimetypes的大类别不是电话号码就的另外分析了。其实从上面两张图经行比对也能看出来
如果data2是0的话,注意是0不是null,那么就是自定义的小类型
而data3就是自定义的小类型的名字,比如你该联系人添加一个“工作专用号”
那么这个data3中就存放这个 工作专用号
下面举个例子:
比如我们现在知道了,联系人的名字叫“wangwu”,这时候我们就可以通过raw-contacts表查询出这个联系人是第几个联系人,也就是raw-contacts表中的_id字段,即data表中的r
raw_contact_id字段,这个字段表示联系人的一个编号,那么该联系人的数据就和这个编号绑定了,通过这个编号就能找到 wangwu这个联系人的其他数据。
在mimetypes中表示电话号码的id是5,所以可以根据raw_contact_id,Mimetype_id,可以查询data1字段获得大类别下的数据,如果电话号码有好多,还需要按照上面的data2经行筛选,如果data2为0,则根据data3就行小内别的筛选。
- android系统自带通讯录的深度研究
- iOS 调用系统自带的通讯录
- 怎么修改android 2.3系统中自带的通讯录contacts
- 导入android自带通讯录报错
- Android自带计算器研究
- android 系统自带的图标
- Android系统中自带的图标
- Android系统自带的intent
- Android系统中自带的图标
- android 调用系统自带的控件
- Android系统中自带的图标
- Android系统自带的颜色文件
- Android系统中自带的图标
- android系统自带的程序调用
- Android系统中自带的图标
- android系统自带的intent集锦
- 获取Android系统自带的UA
- android系统自带对话框的用法
- NYOJ - Fibnacci数列
- 批量更改文件的后缀名
- js模拟alert封装自定义提示框,1秒后自动消失
- UIResponder 对象详解
- 各种常见的排序算法及其实现
- android系统自带通讯录的深度研究
- SAP3.0相关问题,Could not load file or assembly 'sapnco, Version=3.0.0.42
- Silverlight 中 DomainService的手动扩充
- 终于有人说出来了——Java不适合于作为主要编程教学语言
- Request对象.Response对象.Server 对象
- The first module to linux
- 数据结构:胜者树与败者树
- 建立动态的n维数组
- 文件存储openFileOutput和openFileInput