如果需要把应用程序私有的数据暴露给别的应用程序,让别的应用程序可以对自己私有的数据库实现增删改查(跨应用程序的/(跨进程使用)),就能用到ContentProvider,可以理解为私有数据库的一个代理。
编写contentProvider的步骤:
第一步:
创建一个数据库的帮助类,并且成功的执行,有了数据库, 并且成功创建表。
第二步:
为这个数据库去创建一个contentProvider (内容提供者)
publicclass MyContentProvider extends ContentProvider {
//匹配器
staticUriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);
static{
//通道 钥匙
matcher.addURI("com.lulu", "haha", SUCCESS);
}
}
注意: MyContentProvider 写完了之后,需要清单文件中进行注册
<!--需要到清单文件中进行注册 ,并且同时要指定 (通道 ) -->
<provider android:name="com.lulu.MyContentProvider "android:authorities="com.lulu"/>
第三步:
这里要用到一个叫做ContentResolver的对象(内容解析者)
使用内容解析者,需要传递 匹配的规则, 也就是 通道以及 钥匙 , 只有这两个都正确的时候,才
可以通过后门程序去操作数据库
Uri uri =Uri.parse("content://com.lulu/haha");
ContentResolverresolver = getContentResolver();
//操作数据库
resolver.delete(uri,null, null);
注意: 在编写的时候, uri必须要以 content:// 开头,并且跟上 通道以及 钥匙
例如: content://com.lulu/haha