操作之前要新增相應的讀寫許可權
1。簡訊資料庫主要是用到了sms表中的4個字段:
* body:簡訊內容
* address:簡訊的發件人或收件人號碼(跟你聊天那哥們的號碼)
* date:簡訊時間
* type:1為收到,2為傳送
讀取系統簡訊,首先查詢原始碼獲得簡訊資料庫內容提供者的主機名和路徑,**如下:
contentresolver cr = getcontentresolver();
cursor c = cr.query(uri.parse("content://sms"), new string, null, null, null);
while(c.movetonext())
插入簡訊
contentresolver cr = getcontentresolver();
contentvalues cv = new contentvalues();
cv.put("body", "sssssssss");
cv.put("address", 95555);
cv.put("type", 1);
cv.put("date", system.currenttimemillis());
cr.insert(uri.parse("content://sms"), cv);
2.聯絡人資料庫主要關注3張表
* raw\_contacts表:
* contact_id:聯絡人id
* data表:聯絡人的具體資訊,乙個資訊佔一行
* data1:資訊的具體內容
* raw\_contact_id:聯絡人id,描述資訊屬於哪個聯絡人
* mimetype_id:描述資訊是屬於什麼型別
* mimetypes表:通過mimetype_id到該錶檢視具體型別
讀取聯絡人首先在 raw\_contacts表中讀取到聯絡人id再根據id在date表中查詢具體內容,(系統自己處理了根據mimetype_id查詢mimetype,所以返回的結果沒有mimetype_id,而是直接返回mimetype)
// 先查詢raw\_contacts表拿到聯絡人id
cursor cursor = cr.query(uri.parse("content:"), new string, null, null, null);
// 然後拿著聯絡人id去data表查詢屬於該聯絡人的資訊
cursor c = cr.query(uri.parse("content:"), new string, "raw_contact_id = ?", new string, null);
// 得到data1欄位的值,就是聯絡人的資訊,通過mimetype判斷是什麼型別的資訊
while(c.movetonext())
else if("vnd.android.cursor.item/name".equals(mimetype))
else if("vnd.android.cursor.item/phone_v2".equals(mimetype))
}
插入聯絡人,要注意。根據聯絡人表的_id確定要插入的聯絡人的id是多少(_id+1)
// 先查詢raw\_contacts表的_id主鍵,確定新的聯絡人的id應該是多少:主鍵+1
// 把確定的聯絡人id插入raw\_contacts表
contentresolver cr = getcontentresolver();
//先查詢raw_contacts表,獲取最新聯絡人的主鍵,然後主鍵+1,就是要插入的聯絡人的id
cursor cursorcontactid = cr.query(uri.parse("content:"), new string, null, null, null);
//預設聯絡人id就是1
int contact_id = 1;
if(cursorcontactid.movetolast())
contentvalues values = new contentvalues();
values.put("contact_id", contact_id);
//把聯絡人id插入raw_contacts資料庫
cr.insert(uri.parse("content:"), values);
//插入姓名
values.clear();
values.put("data1", "二");
values.put("mimetype", "vnd.android.cursor.item/name");
values.put("raw_contact_id", contact_id);
cr.insert(uri.parse("content:"), values);
//插入**號碼
values.clear();
values.put("data1", "1344567");
values.put("mimetype", "vnd.android.cursor.item/phone_v2");
values.put("raw_contact_id", contact_id);
cr.insert(uri.parse("content:"), values);
。。。。。。//插入此聯絡人的其他資訊
Android操作聯絡人
android系統中的聯絡人也是通過contentprovider來對外提供資料的,我們這裡實現獲取所有聯絡人 通過 號碼獲取聯絡人 新增聯絡人 使用事務新增聯絡人。獲取所有聯絡人 1.android系統中的聯絡人也是通過contentprovider來對外提供資料的 2.資料庫路徑為 data d...
Android操作聯絡人
一 聯絡人資料庫 聯絡人的資料庫檔案的位置 data data com.android.providers.contacts databases.contacts2.db 資料庫中重要的幾張表 1 contacts表 該錶儲存了所有的手機測聯絡人,每個聯絡人佔一行,該錶儲存了聯絡人的 contact...
手動恢復聯絡人,簡訊,聯絡歷史等。
如果碰到突然無法開機,而簡訊,聯絡人啊,什麼的也木有來得及備份的話,那麼一下的方法你就可以笑了。先進入recovery模式下備份系統加所有資料。然後掛載sd卡!備份檔案的目錄為sdcard clockworkmod backup 然後把它們全部拷貝到桌面。然後雙wipe刷機。開機後。root,裝re...