ContentProvider 小结
概要
ContentProvider是Android提供的四大组件之一, 底层由ActivityManagerService管理(BinderServer).
ContentProvider提供了一种 统一访问资源的接口, 不关心数据的具体存储方式.
可以跨应用(进程)进行 数据共享.
Android中常用的数据存储方式: 网络, SDCard(外部存储), File, Sqlite数据库, SharedPreferences.
ContentSolver使用URI(Uniform Resource Indetifier)定位到特定的ContentPrivider
1. Content URI 定义规则
content://authority/path/#
eg:
content://com.xxx.providertest.MyContentProvider/user_table/12
说明:
标准协议头: content://
Authority: 授权信息,访问限定, 用以区别不同的ContentProvider
path: 数据表 eg: user_table
-#-: 数据Id
2. 访问权限控制
- 对ContentProvider提供访问权限设置
<provider
android:name="" //Provider类路径
android:authorities="" // 授权
android:exported="true" // 外部可见
android:permission="" //读写权限标识
android:readPermission="" // 读的权限(查询)标识
android:writePermission="" // 写(存储,修改)权限标识
android:grantUriPermission="" //临时权限标识
/>
- 对ContentProvider中path的访问权限
<path-permission
android:path="" //路径名称(表名)
android:pathPrefix="" //表前缀
android:pathPattern="" // 匹配模板
android:permission="" // 读写权限标识
android:writePermission="" //读权限标识
android:permission="" //写权限标识
/>