android系統中的聯絡人也是通過contentprovider來對外提供資料的,我們這裡實現獲取所有聯絡人、通過**號碼獲取聯絡人、新增聯絡人、使用事務新增聯絡人。
獲取所有聯絡人
1. android系統中的聯絡人也是通過contentprovider來對外提供資料的
2. 資料庫路徑為:/data/data/com.android.providers.contacts/database/contacts2.db
3. 我們需要關注的有3張表
raw_contacts:其中儲存了聯絡人id
data:和raw_contacts是多對一的關係,儲存了聯絡人的各項資料
mimetypes:為資料型別
4. provider的authorites為com.android.contacts
5. 查詢raw_contacts表的路徑為:contacts
6. 查詢data表的路徑為:contacts/#/data
這個路徑為連線查詢,要查詢「mimetype」字段可以根據「mimetype_id」查詢到mimetypes表中的資料
7. 先查詢raw_contacts得到每個聯絡人的id,在使用id從data表中查詢對應資料,根據mimetype分類資料
示例://查詢所有聯絡人
public void testgetall() , null, null, null);
while (idcursor.movetonext()) , null, null, null);
stringbuilder sb = new stringbuilder();
//查詢聯絡人表中的
while (datacursor.movetonext())
system.out.println(sb);
} }
通過**號碼獲取聯絡人
1. 系統內部提供了根據**號碼獲取data表資料的功能,路徑為:data/phones/filter/*
2. 用**號碼替換「*」部分就可以查到所需資料,獲取「display_name」可以獲取到聯絡人顯示名
示例://根據**號碼查詢聯絡人名稱
public void testgetname() , null, null, null);
while (c.movetonext())
} 新增聯絡人
1. 先向raw_contacts表插入id,路徑為:raw_contacts
2. 得到id之後再向data表插入資料,路徑為:data
示例://新增聯絡人
ublic void testinsert()
**:
android 讀取手機聯絡人
authorities 當局 1 到開發環境data data 目錄下 com.android.providers.contacts databases 匯出到左面contacts2.db 2 用工具開啟資料庫關心三張表 raw contacts data mimetypes 3 建立乙個新的工程去...
讀取Android聯絡人列表
android中contactscontract獲取聯絡人的方法 通過contactscontract類獲取 號碼的改變 android通訊錄查詢篇 contactscontract.data開篇 content provider,uri 和 contactscontract 2011 androi...
讀取系統聯絡人
contentprovider讀取 號碼的uri contactscontract.commondatakinds.phone.content uri contentprovider掃瞄本地路徑uri mediastore.images.media.external content uri cont...