簡訊聯絡人操作

2021-07-14 10:47:45 字數 2755 閱讀 1283

操作之前要新增相應的讀寫許可權

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