首页
社区
课程
招聘
[原创]Android联系人数据库分析及获取联系人方法
发表于: 2011-7-2 23:50 24454

[原创]Android联系人数据库分析及获取联系人方法

2011-7-2 23:50
24454

第一次发贴,方家见笑。
      查找获取联系人方法时,找到以下代码
Contacts_.rar
可以获取系统中的联系人(2.2系统),但程序处理得不太好,如下图:

      同时代码没有注释,有些地方看不懂,于是自己分析了一下Android系统联系人数据库,写了一份总结,比较长,有28页,就不贴出来了。
    总结如下:

Android联系人总结.pdf
      这是我对系统联系人数据库的分析结果,希望对大家有所帮助,如果有错误之处,烦请指出。
      我将以上代码进行了修改,获取联系人后显示效果如下图:

      以下为修改过的代码:


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 7
支持
分享
最新回复 (23)
雪    币: 486
活跃值: (210)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
哇,LZ不错啊,分析了这么多。

其实有几点还是要注意一下。
LZ分析的是最原始的最重要的三个表。而android提供的ContentProvider 的那些URI,所用的表并不是直接用这三个原始数据表,而是用的下面的那些对应的view。
比如ContactsContract.Data.CONTENT_URI,它会去查view_data_restricted这个视图。其它的基本一样。
使用时主要就是看那些view了。

还有一个就是注意一下,data表的_id,与raw_contact_id和contact_id这三个id,绝大多数情况,后面两个是一样的值。但这两个值不一定一样。使用这两个ID的时候别搞混就行了。
2011-7-3 12:06
0
雪    币: 5
活跃值: (35)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
受教了~
2011-7-3 20:31
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
4
获益良多

想不到可以用 sqlite 工具直接分析, 多谢指导
2011-7-3 22:25
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
5
楼主对 sms 的数据有没有研究 ?

我找了很久, 都没有找到修改方法  (在 1.5 以后便没有方法 )
2011-7-3 22:37
0
雪    币: 322
活跃值: (113)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
方法不错,收藏了
2011-7-3 23:39
0
雪    币: 5
活跃值: (35)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
稍微看了下,方法类似的,都是通过Content Provider进行修改
2011-7-4 00:06
0
雪    币: 89
活跃值: (185)
能力值: ( LV9,RANK:270 )
在线值:
发帖
回帖
粉丝
8
sms数据,看看sms.db
sqlite3格式的,明文的说。
2011-7-4 10:38
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
收益非浅
2011-7-4 17:15
0
雪    币: 210
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
感谢LZ的无私分享。
2011-7-4 20:06
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢分享
2011-7-4 20:54
0
雪    币: 14
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
yi哥v5~~
2011-7-5 00:23
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
13
多谢楼主和 kuang110 的指点, 我有空试一下

上一次我曾经跟网上的例子做, 但失败了  
2011-7-5 10:08
0
雪    币: 220
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
不错 不错 受益
2011-7-5 14:32
0
雪    币: 114
活跃值: (81)
能力值: (RANK:60 )
在线值:
发帖
回帖
粉丝
15
我是直接把数据库文件从手机里面拷出来,然后用sqlite查看器看的,这样就可以知道每个表,每个字段,通过网上的资料,就知道每个字段是什么意思.
2011-7-5 20:37
0
雪    币: 114
活跃值: (81)
能力值: (RANK:60 )
在线值:
发帖
回帖
粉丝
16
这个我没有弄过。前段时间把SMS表,还有通话记录表,联系人表
都看了一下,先把db文件拷到电脑上面,然后用java把里面的数据读出来。
如果可以的话,是不是可以直接通过sqlite对文件进行修改操作呀?
(可能要去考虑文件的权限的问题)
2011-7-5 20:44
0
雪    币: 2319
活跃值: (565)
能力值: (RANK:300 )
在线值:
发帖
回帖
粉丝
17
我需要修改 (写入)

我就是胆心权限问题
2011-7-7 09:44
0
雪    币: 839
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
感谢楼主的分享!
2011-7-7 11:22
0
雪    币: 170
活跃值: (90)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
19
不错 学习了 多谢分享
2011-7-7 21:34
0
雪    币: 74
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
额,对 Android 不懂的人表示压力好大啊!
2011-7-7 22:31
0
雪    币: 84
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
谢谢楼主!收藏了!
2011-8-30 15:42
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
感谢LZ的无私分享。
2011-9-18 10:33
0
雪    币: 199
活跃值: (272)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
23
我为这个折腾了很久,现在才看到,哈哈
2011-10-18 11:15
0
雪    币: 202
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
正准备研究这个!谢谢提供资料参考!
2011-11-16 12:09
0
游客
登录 | 注册 方可回帖
返回
//