Android操作聯絡人

2021-06-23 00:09:37 字數 1515 閱讀 1063

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」可以獲取到聯絡人顯示名

示例:[html]view plain

copy

//根據**號碼查詢聯絡人名稱  

public void testgetname() , null, null, null);  

while (c.movetonext())   

}新增聯絡人

1.   先向raw_contacts表插入id,路徑為:raw_contacts

2.   得到id之後再向data表插入資料,路徑為:data

示例:[html]view plain

copy

//新增聯絡人  

ublic void testinsert() 

Android操作聯絡人

一 聯絡人資料庫 聯絡人的資料庫檔案的位置 data data com.android.providers.contacts databases.contacts2.db 資料庫中重要的幾張表 1 contacts表 該錶儲存了所有的手機測聯絡人,每個聯絡人佔一行,該錶儲存了聯絡人的 contact...

android 聯絡人詳解

操作聯絡人工程需要許可權,不然會報錯。android聯絡人是用資料庫儲存的,資料庫結構如下 raw contacts表 主要儲存了每個聯絡個的唯一表示欄位 id欄位。data表 raw contact id就是raw contacts中的 id欄位,所有raw contact id值相同的都是 同乙...

Android聯絡人讀取操作筆記

android中的聯絡人都儲存在乙個sqlite資料庫中,有興趣的可以使用adb直接push出來看一下裡面的表和檢視的結構,它的路徑為 data data com.android.providers.contacts databases contacts2.db 在聯絡人資料庫中,儲存的都是一些小的...