Uri、UriMatcher、CententUris详解
文章目录
- Uri
通用资源标志符(Universal Resource Ident,简称”URI”)
Uri代表要操作的数据,Android上可用的每种资源——图片、视频等资源都可以用Uri表示
URI一般分为三个部分组成:访问资源的命名机制,存放资源的主机名,资源自身的名字,由路径表示
Android的Uri由以下三部分组成:”content://“、数据的路径、标示ID(可选)
如:
- 所有联系人的Uri:content://contacts/people
- 某个联系人的Uri:content://contacts/people/5
- 所有图片Uri:content://media/external
- 某个图片的Uri:content://media/external/images/media/4
- UriMatcher
UriMatcher类主要用于匹配Uri
使用方法如下,初始化:
1 | UriMathcer matcher = new UriMatcher(UriMatcher.NO_MATCH); |
第二步注册需要的Ur:
1 | matcher.addURI("com.zoe.blog","people",PEOPLE); |
第三部,与已经注册的Uri进行匹配:
1 | Uri uri = Uri.parse("content://" + "com.zoe.blog" + "/people"); |
match方法匹配后会返回一个匹配码Code,即在使用注册方法addURI时传入的第三个参数。
- 常量
UriMatcher.NO_MATCH表示不匹配任何路径的返回码 # 号为通配符*号为任意字符
- CententUris
ContentUris类用于获取Uri路径后面的ID部分
1 | Uri uri = Uri.parse("content://com.zoe.demo/people"); |

