內容提供器 ContentProvider

2022-07-22 11:36:12 字數 1592 閱讀 9361

一.簡介

內容提供器(content provider)主要用於在不同的應用程式之間實現資料共享的功能,它提供了一套完整的機制,允許乙個程式訪問另乙個程式中的資料,同時還能保證被訪資料的安全性。目前,使用內容提供器是android 實現跨程式共享資料的標準方式。

不同於檔案儲存和sharedpreferences 儲存中的兩種全域性可讀寫操作模式,內容提供器可以選擇只對哪一部分資料進行共享,從而保證我們程式中的隱私資料不會有洩漏的風險。

內容提供器的用法一般有兩種,一種是使用現有的內容提供器來讀取和操作相應程式中的資料,另一種是建立自己的內容提供器給我們程式的資料提供外部訪問介面。

二.基本知識點

1.要訪問內容提供器中共享的資料,就一定要借助contentresolve 類.contentresolver 中提供了一系列的方法用於對資料進行crud 操作,其中insert()方法用於新增資料,update()方法用於更新資料,delete()方法用於刪除資料,query()方法用於查詢資料

不過,目前還很難辨認出這兩個字串就是兩個內容uri,我們還需要在字串的頭部加上協議宣告。因此,內容uri 最標準的格式寫法如下:

content://

content://

3.在得到了內容uri 字串之後,我們還需要將它解析成uri 物件才可以作為引數傳入。解析的方法也相當簡單,**如下所示:

uri uri = uri.parse("

");

只需要呼叫uri.parse()方法,就可以將內容uri 字串解析成uri 物件了。

現在我們就可以使用這個uri 物件來查詢table1 表中的資料了,**如下所示:

cursor cursor =getcontentresolver().query(

uri,

projection,

selection,

selectionargs,

sortorder);

這些引數和sqlitedatabase 中query()方法裡的引數很像,但總體來說要簡單一些,畢竟這是在訪問其他程式中的資料,沒必要構建過於複雜的查詢語句。下表對使用到的這部分引數進行了詳細的解釋。

讀取到乙個cursor物件後,就可以獲取資料了.

if (cursor != null

) cursor.close();

}

三.讀取手機聯絡人**(向系統提供的內容提供器獲取資料):1.關鍵**:

protected

void

readcontact()

}catch

(exception e)

finally}}

2.許可權申明

"

android.permission.read_contacts

" />

內容提供器 建立自己的內容提供器

urimatcher類 匹配內容uri功能 建立內容提供器 新建乙個類myprovider去繼承contentprovider類。contentprovider的六個抽象方法 抽象方法的使用 1 query insert update delete 這四種方法的實現類似,以query 方法為例,如下...

Android之內容提供器

內容提供器的用法一般有兩種 1.使用現有的內容提供器來讀取和操作相應程式中的資料。2。建立自己的內容提供器給我們程式的資料提供外部訪問介面。contentresolver的基本用法 要想訪問內容提供器中共享的資料 就一定要借助contentresolver類。可以通過context中的getcont...

android 內容提供器簡介

我們學了 android 資料持久化的技術,包括檔案儲存 sharedpreferences 存 儲 以及資料庫儲存。不知道你有沒有發現,使用這些持久化技術所儲存的資料都只能在當 前應用程式中訪問。雖然檔案和 sharedpreferences 儲存中提供了 mode world readable ...