[转]Android中uri的组成

转载 2012年03月28日 14:55:03

http://hi.baidu.com/gaogaf/blog/item/25e30afad3b3148b59ee90de.html

Content Provider这个东西在Android平台上是最常用的共享数据的方法(似乎应用程序之间共享数据也只有这种方法吧,待求证)。虽然常用,但是这个东 西要理解透彻还是要先掌握一些基础的。URI就是Content Provider(简称CP)的基础。我们要标识一个CP,就必须用URI这个东东。这就类似于我们要通过网址来标识某个特定网站,实际上网址URL本身 就是一种URI。URI全称Uniform Resource Identifier, 它包括了URL和URN。而关于它们的详细解释,有心的朋友可以参考RFC3896:http://tools.ietf.org/html /rfc3986。URI不仅可以标识特定CP,还可以标识CP中特定的数据库表,就好像URL不仅可以标识特定网站,也可以标识这个网站某个特定网页一 样。实际上在Android平台上URI的用途更广泛一些,它还用于Intent中data的标识。
就Android平台而言,URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。格式如下:
scheme://host:port/path
举个实际的例子:
content://com.example.project:200/folder/subfolder/etc
\---------/  \---------------------------/ \---/ \--------------------------/
scheme                 host               port        path
                \--------------------------------/
                          authority   

现在大家应该知道data flag中那些属性的含义了吧,看下data flag
<data android:host="string"
      android:mimeType="string"
      android:path="string"
      android:pathPattern="string"
      android:pathPrefix="string"
      android:port="string"
      android:scheme="string" />
但是我们在程序中一般是不直接用URI来标识CP的,是的,正如我们通常见到的用定义的常量来标识。例如standard CP中的Contacts,我们就用Contacts.People.CONTENT_URI来标识Contacts CP中People这个表。那么要标识某个具体的人怎么办呢? 这就用到了ContentUris.withAppendedId() 和 Uri.withAppendedPath()。例如我们要表示content://contacts/people/20,那么我们就可以用如下语句:
Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, 20); 或者
Uri uri = Uri.withAppendedPath(People.CONTENT_URI, "20");


Uri详解之——Uri结构与代码提取

前言:依然没有前言……上几篇给大家讲了ContentProvider,里面有用到Uri,可能很多同学对Uri是什么,怎么来的,这些都不是很熟悉,今天就给大家具体讲讲Uri一、URI与Uri大家可能经常...
  • harvic880925
  • harvic880925
  • 2015年03月27日 17:15
  • 51907

Uri详解之二——通过自定义Uri外部启动APP与Notification启动

前言:马上快要毕业一年了,还有三个月,要在毕业一年的时候把android基础看完,把android pro4认真的过一遍,在下一年中仔细看看JAVA基础、高级应用及内核的东西。预算中最后的一年,努力吧...
  • harvic880925
  • harvic880925
  • 2015年03月31日 16:53
  • 17550

Android URI简介

就Android平台而言,URI主要分三个部分:scheme, authority and path。其中authority又分为host和port。格式如下: scheme://host:port...
  • sunny09290
  • sunny09290
  • 2012年04月26日 16:47
  • 66346

Android中uri的组成

Content Provider这个东西在Android平台上是最常用的共享数据的方法(似乎应用程序之间共享数据也只有这种方法吧,待求证)。虽然常用,但是这个东 西要理解透彻还是要先掌握一些基础的。U...
  • garyichgo
  • garyichgo
  • 2013年01月15日 13:44
  • 545

android之Uri

一.URI简介 概念:统一资源标识符(Uniform Resource Identifier) 组成部分:     1.访问资源的命名机制(scheme)     2.存放资源的主机名(author...
  • sjz4860402
  • sjz4860402
  • 2016年04月22日 21:03
  • 2959

Android如何获得指定文件的Uri

许多情况下,我们要获得指定文件的Uri,费话不多说直接上代码: 通过已知路径来获得audio文件的uri /** * 查找在于SDcard中的Audio文件对应于MediaStore...
  • fhlkm
  • fhlkm
  • 2012年07月25日 11:18
  • 8480

Android--Uri转实际路径详解

通过Uri得到实际路径,网上方法有很多,但我前几天试了一下,发现返回的值都是null,后来才发现,Uri的格式在Android4.4之后有了很大的改动。 比如:content://media/exte...
  • u013160228
  • u013160228
  • 2015年07月27日 16:05
  • 2404

Android将"content://"类型的uri转为文件路径

uri有多种类型的的scheme,例如content、file等,有些时候我们需要文件存储的真实路径例如Android混合开发中使用与openFileChooser完成文件选择上传的功能,本文提供了一...
  • RickyFM
  • RickyFM
  • 2015年09月14日 22:52
  • 5916

android图片文件的路径地址与Uri的相互转换

一个android文件的Uri地址一般如下: content://media/external/images/media/62026 这是一张图片的Uri,那么我们如何根据这个Uri获得其...
  • xiangjai
  • xiangjai
  • 2015年07月31日 08:49
  • 8937

Android Uri转Path

  • 2016年10月17日 14:11
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转]Android中uri的组成
举报原因:
原因补充:

(最多只允许输入30个字)