android手机内的通讯录数据库
2014-02-21 17:05
507 查看
今天看了一下 android手机内的通讯录数据库,简单的汇总了一下。
数据库见附件中的contacts2.db , 里面一共有40个表,34个视图,很庞大,挑几个重点的看一下。
1.表Raw_contacts
假定设备上有2个账户:
· Neroseagate3@gmail.com
· Neroseagate@gmail.com
这两个账户里面都有 联系人“GG”,导出的数据如下
注意头两列,第一列将会和下面的表关联,第二列关联Account
第一个 [酷派客服热线]是手机自带的。
中间两条是同步下来的。
最后一个是从手机上添加的。
这个表的作用 就是存储原生数据以及同步的配置项。
2.Data 表
详细的数据存放在data中,用主键关联raw_Data。
注意 raw_contact_id 是用来关联上一个表的, mimeType_id 是指不同的数据类型,data1-data15是用来存储数据的
MimeType 的值如下:
另外data1-data15 有不同的用途
名字:
Uri: Uri.parse("content://com.android.contacts/data")
PREFIX = "data4"; //名称前缀
MID_NAME = "data5";//中间名
GIVEN_NAME = "data2";//名字
FAMILY_NAME = "data3";//姓氏
MID_PINYIN="data8"; //中间名拼音
String FAMILY_NAME_PINYIN="data9"; //姓氏拼音
String SUFIX = "data6"; //名称后缀
String SUFIX_PINYIN="data7"; //名字拼音
电话:
Uri: Uri.parse("content://com.android.contacts/data/phones"
phone: "data1";//号码
Type: "data2";//这个字段是整形值,指示电话类型
类型对应关系如下:
TYPE_CUSTOM = 0;
TYPE_HOME = 1;
TYPE_MOBILE = 2;
TYPE_WORK = 3;
TYPE_FAX_WORK = 4;
TYPE_FAX_HOME = 5;
TYPE_PAGER = 6;
TYPE_OTHER = 7;
Email:
Uri:Uri.parse("content://com.android.contacts/data/emails")
Email: "data1";//邮箱地址
Type: "data2";//这个字段是整形值,指示Email类型
类型对应关系如下:
TYPE_CUSTOM = 0;
TYPE_HOME = 1;
TYPE_WORK = 2;
TYPE_OTHER = 3;
TYPE_MOBILE = 4;
地址:
Uri:Uri.parse("content://com.android.contacts/data/postals")
STREET="data4";//街道
CITY="data8";//城市
STATE="data7";//州
ZIP_CODE="data9";//邮政编码
Type:"data2";//type的类型如下
TYPE_CUSTOM = 0;
TYPE_HOME = 1;
TYPE_WORK = 2;
TYPE_OTHER = 3;
3.表Contacts
这张表,按照google的意思,合并raw_contacts里面的同名联系人,如下图所示,
可是,我看到的并不是这样子, 对比第一个表,貌似没有合并,只是一个简单的汇总信息表。
参考资料
http://developer.android.com/guide/topics/providers/contacts-provider.html
http://blog.csdn.net/xys289187120/article/details/6730957
/content/4725738.html
附件( http://files.cnblogs.com/xiaokang088/db.zip)是 从手机里面提取出来的数据库和 转化的excel。
数据库见附件中的contacts2.db , 里面一共有40个表,34个视图,很庞大,挑几个重点的看一下。
1.表Raw_contacts
假定设备上有2个账户:
· Neroseagate3@gmail.com
· Neroseagate@gmail.com
这两个账户里面都有 联系人“GG”,导出的数据如下
注意头两列,第一列将会和下面的表关联,第二列关联Account
第一个 [酷派客服热线]是手机自带的。
中间两条是同步下来的。
最后一个是从手机上添加的。
这个表的作用 就是存储原生数据以及同步的配置项。
2.Data 表
详细的数据存放在data中,用主键关联raw_Data。
注意 raw_contact_id 是用来关联上一个表的, mimeType_id 是指不同的数据类型,data1-data15是用来存储数据的
_id | package_id | mimetype_id | raw_contact_id | is_read_only | is_primary | is_super_primary | data_version | data1 | data2 | data3 | data4 | data5 | data6 | data7 | data8 | data9 | data10 | data11 | data12 | data13 | data14 | data15 | data_sync1 |
23 | 7 | 5 | 0 | 0 | 0 | 0 | https://www.google.com/m8/feeds/photos/media/neroseagate3%40gmail.com/1a6e03a18abfdb19 | ||||||||||||||||
24 | 6 | 5 | 0 | 0 | 0 | 1 | GG | GG | 1 | 3 | |||||||||||||
25 | 11 | 5 | 0 | 0 | 0 | 1 | |||||||||||||||||
26 | 10 | 5 | 0 | 0 | 0 | 1 | |||||||||||||||||
27 | 15 | 5 | 0 | 0 | 0 | 1 | 4 | 5 | |||||||||||||||
29 | 8 | 5 | 0 | 0 | 0 | 1 | 5 | ||||||||||||||||
30 | 5 | 5 | 0 | 0 | 0 | 1 | 13372576188 | 2 | 8.6134E+12 | ||||||||||||||
31 | 16 | 5 | 0 | 0 | 0 | 1 | www.cnblogs.com | 3 | |||||||||||||||
32 | 17 | 5 | 0 | 0 | 0 | 0 | 1972/12/18 | 3 | |||||||||||||||
33 | 2 | 5 | 0 | 1 | 0 | 1 | home@1.com | 1 | |||||||||||||||
34 | 8 | 5 | 0 | 0 | 0 | 0 | 6 | ||||||||||||||||
35 | 4 | 5 | 0 | 0 | 0 | 0 | 江西,中囿 | 1 | 江西_ | 中国 |
_id | mimetype |
1 | vnd.android.cursor.item/cpother |
2 | vnd.android.cursor.item/email_v2 |
3 | vnd.android.cursor.item/im |
4 | vnd.android.cursor.item/postal-address_v2 |
5 | vnd.android.cursor.item/phone_v2 |
6 | vnd.android.cursor.item/name |
7 | vnd.android.cursor.item/photo |
8 | vnd.android.cursor.item/group_membership |
9 | vnd.android.cursor.item/organization |
10 | vnd.android.cursor.item/nickname |
11 | vnd.android.cursor.item/note |
12 | vnd.android.cursor.item/sns |
13 | vnd.android.cursor.item/sip_address |
14 | vnd.android.cursor.item/identity |
15 | vnd.com.google.cursor.item/contact_misc |
16 | vnd.android.cursor.item/website |
17 | vnd.android.cursor.item/contact_event |
名字:
Uri: Uri.parse("content://com.android.contacts/data")
PREFIX = "data4"; //名称前缀
MID_NAME = "data5";//中间名
GIVEN_NAME = "data2";//名字
FAMILY_NAME = "data3";//姓氏
MID_PINYIN="data8"; //中间名拼音
String FAMILY_NAME_PINYIN="data9"; //姓氏拼音
String SUFIX = "data6"; //名称后缀
String SUFIX_PINYIN="data7"; //名字拼音
电话:
Uri: Uri.parse("content://com.android.contacts/data/phones"
phone: "data1";//号码
Type: "data2";//这个字段是整形值,指示电话类型
类型对应关系如下:
TYPE_CUSTOM = 0;
TYPE_HOME = 1;
TYPE_MOBILE = 2;
TYPE_WORK = 3;
TYPE_FAX_WORK = 4;
TYPE_FAX_HOME = 5;
TYPE_PAGER = 6;
TYPE_OTHER = 7;
Email:
Uri:Uri.parse("content://com.android.contacts/data/emails")
Email: "data1";//邮箱地址
Type: "data2";//这个字段是整形值,指示Email类型
类型对应关系如下:
TYPE_CUSTOM = 0;
TYPE_HOME = 1;
TYPE_WORK = 2;
TYPE_OTHER = 3;
TYPE_MOBILE = 4;
地址:
Uri:Uri.parse("content://com.android.contacts/data/postals")
STREET="data4";//街道
CITY="data8";//城市
STATE="data7";//州
ZIP_CODE="data9";//邮政编码
Type:"data2";//type的类型如下
TYPE_CUSTOM = 0;
TYPE_HOME = 1;
TYPE_WORK = 2;
TYPE_OTHER = 3;
3.表Contacts
这张表,按照google的意思,合并raw_contacts里面的同名联系人,如下图所示,
可是,我看到的并不是这样子, 对比第一个表,貌似没有合并,只是一个简单的汇总信息表。
_id | name_raw_contact_id | default_tel | single_is_secret | photo_index | send_to_voicemail_vt | send_to_voicemail_sip | indicate_phone_or_sim_contact | index_in_sim | filter | is_sdn_contact |
1 | 1 | 76923075280 | 0 | 5 | 0 | 0 | -1 | -1 | 0 | 0 |
3 | 5 | 13372576188 | 0 | 4 | 0 | 0 | -1 | -1 | 0 | 0 |
6 | 6 | 15906879563 | 0 | 7 | 0 | 0 | -1 | -1 | 0 | 0 |
7 | 7 | 133 | 0 | 6 | 0 | 0 | -1 | -1 | 0 | 0 |
http://developer.android.com/guide/topics/providers/contacts-provider.html
http://blog.csdn.net/xys289187120/article/details/6730957
/content/4725738.html
附件( http://files.cnblogs.com/xiaokang088/db.zip)是 从手机里面提取出来的数据库和 转化的excel。
相关文章推荐
- Android Service 自动启动
- 也谈Android中的Context(1)
- android 电子书源码,翻页效果
- Android 开发性能优化之SparseArray(三)
- android项目用到的公共类方法
- 近百android开源项目贡献
- Android 使用ViewPager实现左右循环滑动图片
- Android开源项目汇总
- [学习笔记]android:系列样式大全
- Android 开发性能优化之SparseArray(二)
- Android 将若干张图片拼接在一起形成一个全新的图片
- android手把手教你开发launcher(五)——设置壁纸
- android手把手教你开发launcher(四)——显示widget
- android手把手教你开发launcher(三)——启动安装的应用程序
- android手把手教你开发launcher(二)——列出安装的应用程序
- android开发 打开各种系统设置信息页面 android.settings
- android手把手教你开发launcher(一)(AndroidStudio版)
- 开发Flash ANE(Android版)
- Android 开发性能优化之SparseArray(一)
- Android:Serializable的作用