简介:内容提供者,通过暴露数据供其他应用进行读取,数据来源可以是数据库、文件、xml等;
(ContentProvider是以类似数据库中表的方式将数据暴露的)
![](https://img.haomeiwen.com/i2354038/164bc68d8da4770e.png)
URL:统一资源定位符,常说的网址,采用统一格式来描述各种资源信息(文件、服务器地址、目录等);
URN:统一资源名称,是url的更新形式,不依赖位置,有可能减少失效连接数;
URI:统一资源标识符,一种资源定位机制(或命名标识机制)格式:[scheme:] scheme-specific-part,url与urn都是uri的子集;
使用系统提供的ContentProvider
不同版本可能对应不同的URL,获取URL与对应的数据库表的字段:
①来到系统源码文件下:all-src.rar -> TeleponeProvider -> AndroidManifest.xml查找对应API
②打开模拟器的file exploer/data/data/com.android.providers.contacts/databases/contact2.db 导出后使用SQLite图形工具查看表数据
例1:读取短信
![](https://img.haomeiwen.com/i2354038/3849df405884e389.png)
注:从5.0开始,默认短信应用外的软件不能以写入短信数据库的形式发短信。这里只做插入数据的例子来看
![](https://img.haomeiwen.com/i2354038/3dda2843f9bc08c6.png)
例2:读取手机联系人
![](https://img.haomeiwen.com/i2354038/35b509114306cae0.png)
![](https://img.haomeiwen.com/i2354038/477922e548e16126.png)
![](https://img.haomeiwen.com/i2354038/de48416f13e2bff6.png)
自定义ContentProvider
![](https://img.haomeiwen.com/i2354038/ad5197f22adf725f.png)
案例:B项目插入数据到A项目
![](https://img.haomeiwen.com/i2354038/0b432875c36d1d3c.png)
![](https://img.haomeiwen.com/i2354038/a8d9a33ba0ed6e0b.png)
![](https://img.haomeiwen.com/i2354038/fb16cf1bc663183d.png)
![](https://img.haomeiwen.com/i2354038/586b332d4839d08b.png)
监听ContentProvider的数据变化
![](https://img.haomeiwen.com/i2354038/e82093e16e8229db.png)
网友评论