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 在聯絡人資料庫中,儲存的都是一些小的...