Android讀取 加入聯絡人

2021-09-23 19:35:52 字數 1339 閱讀 5079

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...