自定义ContentProvider
作用:
在安卓APP中每一个应用都有自己的数据库,为了安全所以只能本应用才可以访问,但是又有一些数据需要给别的应用使用,比如:短信,联系人等,这些都是安卓自己提供好的。我们自己写的程序也有有一些数据需要给别人用,所以需要自定义一个内容提供者,所以有ContentProvider。
使用步骤:
1.定义一个类继承ContentProvider
2.重写相关方法
3.注册---》清单文件---》application节点内部---》provider:name、authorities(域名)、exported(是否要暴露数据)
可以自定义权限:
在application节点内,的peovoider中增加readpermission(可读)或writepermission(可写)者属性,
读:readpermission-->值字符串A
发布权限:permission节点:name:值:值字符串A
---》application节点的外面
写:writepermission-->值字符串A
发布权限:permission节点:name:值:值字符串A
---》application节点的外面
使用ContentProvider提供出来的数据:
添加相应权限:跟以前使用权限一样
UriMatcher:匹配Uri
备匹配:add(authorities, tableName , code)
使用的uri:
Content://authorities/tableName
ContentResolver
Uri
备匹配:add(authorities, tableName/# , code)
备匹配:add(authorities, tableName/* , code)
#:数值
*:文本
Contenturis.withAppendId()
ContentUris.parseId()
Uri.withAppendedPath(contentUri, name);
uri.getLastPathSegment();