内容URI
内容URI:权限+路径
权限:用于不同的应用程序做区分,一般都采用程序包名的方式命名。
路径:用于对同一应用中不同的表做区分的,通常会添加到权限的后边。
如:
content://com.mars.app.provider/table1
content://com.mars.app.provider/table2
除此之外,我们还可以在内容URI后边再加上一个ID
content://com.mars.app.provider/table1/1
表示调用方期望访问com.mars.app.provider这个应用的table1表中id为1的数据。
内容URI的匹配
- 使用通配符的方式来分别匹配两种格式的URI:
*
:表示匹配任意长度的任意字符
#
:表示匹配任意长度的数字 - 然后使用UriMatcher这个类的addURI()方法,传入3个参数:
addURI(“权限”,”路径”,”自定义代码“),表示将要匹配的所有Uri添加到库里边,这样调用UriMatcher的match()方法时,传入一个Uri对象,返回值是某个能够匹配这个Uri对象所对应的自定义代码。
自定义ContentProvider
这里主要说一下getType()方法!
getType()方法,用于获取Uri对象所对应的MIME类型(字符串)。
MIME格式:
①必须以vnd开头
②如果Uri以路径结尾,则后接android.cursor.dir/
,如果以id结尾,则后接android.cursor.item/
③最后接上vnd.<authority>.<path>
例如:
content://com.mars.app.provider/table1
对应的MIME类型为:
vnd.android.cursor.dir/vnd.com.mars.app.provider/table1
content://com.mars.app.provider/table1/1
对应的MIME类型为:
vnd.android.cursor.item/vnd.com.mars.app.provider/table1