设为首页 加入收藏

TOP

Android中Uri的使用
2014-11-24 11:33:34 来源: 作者: 【 】 浏览:0
Tags:Android Uri 使用

1.Uri


通用资源标志符(Universal Resource Identifier, 简称"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


我们很经常需要解析Uri,并从Uri中获取数据。


Android系统提供了两个用于操作Uri的工具类,分别为UriMatcher 和ContentUris


虽然这两类不是非常重要,但是掌握它们的使用,会便于我们的开发工作。


下面就一起看一下这两个类的作用。


2.UriMatcher


UriMatcher 类主要用于匹配Uri.


使用方法如下。


首先第一步,初始化:


第二步注册需要的Uri:


第三部,与已经注册的Uri进行匹配:


match方法匹配后会返回一个匹配码Code,即在使用注册方法addURI时传入的第三个参数。


上述方法会返回"vnd.android.cursor.dir/person".


总结:


--常量 UriMatcher.NO_MATCH 表示不匹配任何路径的返回码


--# 号为通配符


--* 号为任意字符


另外说一下,官方SDK说明中关于Uri的注册是这样写的:


这个说明估计已经是Google官方没有更新,首先是初始化方法,没有传参,那么现在初始化时,实际是必须传参的。 可以看一下Android2.2的源码,无参数的构造方法已经是private的了。


另外就是addURI这个方法,第二个参数开始时不需要"/", 否则是无法匹配成功的。


3.ContentUris


ContentUris 类用于获取Uri路径后面的ID部分


1)为路径加上ID: withAppendedId(uri, id)


比如有这样一个Uri


通过withAppendedId方法,为该Uri加上ID


最后resultUri为: content://com.yfz.Lesson/people/10


2)从路径中获取ID: parseId(uri)


最后personid 为 :10


附上实验的代码:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android 中的ListView选中项的背.. 下一篇Android 电话窃听器

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Python爬虫教程(从 (2025-12-26 16:49:14)
·【全269集】B站最详 (2025-12-26 16:49:11)
·Python爬虫详解:原 (2025-12-26 16:49:09)
·Spring Boot Java: (2025-12-26 16:20:19)
·Spring BootでHello (2025-12-26 16:20:15)