簡介:內(nèi)容提供者,通過暴露數(shù)據(jù)供其他應用進行讀取,數(shù)據(jù)來源可以是數(shù)據(jù)庫、文件、xml等;
? ? ? ? ? ? (ContentProvider是以類似數(shù)據(jù)庫中表的方式將數(shù)據(jù)暴露的)

執(zhí)行原理
URL:統(tǒng)一資源定位符,常說的網(wǎng)址,采用統(tǒng)一格式來描述各種資源信息(文件、服務器地址、目錄等);
URN:統(tǒng)一資源名稱,是url的更新形式,不依賴位置,有可能減少失效連接數(shù);
URI:統(tǒng)一資源標識符,一種資源定位機制(或命名標識機制)格式:[scheme:] scheme-specific-part,url與urn都是uri的子集;
使用系統(tǒng)提供的ContentProvider
不同版本可能對應不同的URL,獲取URL與對應的數(shù)據(jù)庫表的字段:
①來到系統(tǒng)源碼文件下:all-src.rar -> TeleponeProvider -> AndroidManifest.xml查找對應API
②打開模擬器的file exploer/data/data/com.android.providers.contacts/databases/contact2.db 導出后使用SQLite圖形工具查看表數(shù)據(jù)
例1:讀取短信

讀取短信
注:從5.0開始,默認短信應用外的軟件不能以寫入短信數(shù)據(jù)庫的形式發(fā)短信。這里只做插入數(shù)據(jù)的例子來看

插入短信
例2:讀取手機聯(lián)系人

讀取聯(lián)系人

根據(jù)手機號查找姓名

插入聯(lián)系人
自定義ContentProvider

流程
案例:B項目插入數(shù)據(jù)到A項目

創(chuàng)建數(shù)據(jù)庫

繼承ContentProdiver

清單文件配置

B項目中使用ContentResolver操作A
監(jiān)聽ContentProvider的數(shù)據(jù)變化

監(jiān)聽ContentProvider