8.4 ContentProvider
2018-07-18 本文已影响0人
jadefly
简介:内容提供者,通过暴露数据供其他应用进行读取,数据来源可以是数据库、文件、xml等;
(ContentProvider是以类似数据库中表的方式将数据暴露的)
执行原理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:读取短信
读取短信注:从5.0开始,默认短信应用外的软件不能以写入短信数据库的形式发短信。这里只做插入数据的例子来看
插入短信例2:读取手机联系人
读取联系人 根据手机号查找姓名 插入联系人自定义ContentProvider
流程案例:B项目插入数据到A项目
创建数据库 继承ContentProdiver 清单文件配置 B项目中使用ContentResolver操作A