Android聯繫人數據庫分析
而從Android 2.0及API Level爲5開始新增了android.provider.ContactsContract來代替原來的方法數據庫查詢API。
ContactsContract的子類ContactsContract.Contacts數據庫的是一張表,該數據庫位於/data/data/com.android.providers.contacts/databases/contacts2.db
使用SQLiteSpy.exe查看 如下圖
表結構樹
代表了所有聯繫人的統計信息。比如聯繫人ID(—ID),查詢鍵(LOOKUP_KEY),聯繫人的姓名(DISPLAY_NAME_PRIMARY),頭像的id(PHOTO_ID)以及羣組的id等等。
重要的幾張表和鏈接關係
如下圖
數據總表:
根據1的值 再查詢表
可以知道每一行數據代表的意思.
我要提到的是mimtype=11的值就表示聯繫人的分組信息
在表data中如下圖
到這裏你會發現 關於分組的信息後面的字段都爲空
根據列data1的值 我們可以在表groups
中找到分組信息
但是怎麼找這些分組中的聯繫人呢
在data1中有個raw_contact_id值對應下表
如下表中的主鍵ID
這樣就可以得到分組所在的聯繫人的名稱最後根據這個表中的contact_id查詢data表獲取手機號碼等其他信息
值得注意的是raw_contacts中的short_key將聯繫人的中文轉化成拼音了,字母排序可以通過查這個.之前我是查編碼表..這樣看來android的API越來越完善了
GL
2012-3-20 End
注.裏面的"脫衣舞"聯繫人是哪個流氓軟件添加進去的??誰能告訴我?