Android Uri解析

来源:互联网 发布:怎样应聘淘宝模特 编辑:程序博客网 时间:2024/06/02 01:49

   Android Uri是Google依据Java URI为Android量身打造的,本篇将和大家一起学习Android中的Uri。

   Android Uri结构简介:

   根据Java中的URI结构可以知道,Android Uri的基本结构是:

   [scheme:]scheme-specific-part[#fragment],

这里分为三个部分,scheme、scheme-specific-part、fragment。如果更详细的划分,可以为:

   [scheme:][//authority][path][?query][#fragment] 。

其中各部分的规则如下:

  • path可以有多个,每个用/连接;
  • query参数可以带有对应的值,也可以不带,如果带对应的值用=表示;
  • query参数可以有多个,每个用&连接;
  • 在android中,除了scheme、authority是必须要有的,其它的几个path、query、fragment,它们每一个可以选择性的要或不要,但顺序不能变。

   下面通过一个示例介绍一下Android Uri:

   http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic  

  • scheme:http
  • scheme-specific-part://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4
  • fragment:harvic
  • authority:www.java2s.com:8080
  • query:stove=10&path=32&id=4
  • path:/yourpath/fileName.htm
  • host:www.java2s.com
  • port:8080

  

   API简介:

   getScheme():获取Uri中的scheme字符串部分;

   getSchemeSpecificPart():获取Uri中的scheme-specific-part部分;

   getFragment():获取Uri中的Fragment部分;

   getAuthority():获取Uri中Authority部分;

   getPath():获取Uri中path部分;

   getQuery():获取Uri中的query部分;

   getHost():获取Authority中的Host字符串;

   getPost():获取Authority中的Port字符串;

   List< String> getPathSegments():上面我们的getPath()是把path部分整个获取下来,getPathSegments()的作用就是依次提取出Path的各个部分的字符串,以字符串数组的形式输出。

   另外,在android.net.Uri中有一个Uri.Builder构造器。


   Uri扩展概念:

   绝对URI:以scheme组件起始的完整格式,如http://fanyi.youdao.com。表示以对标识出现的环境无依赖的方式引用资源。

   相对URI:不以scheme组件起始的非完整格式,如fanyi.youdao.com。表示以对依赖标识出现的环境有依赖的方式引用资源。

   不透明URI:scheme-specific-part组件不是以正斜杠(/)起始的,如mailto:xxx@abc.com。由于不透明URI无需进行分解操作,因此不会对scheme-specific-part组件进行有效性验证。

   分层URI:scheme-specific-part组件是以正斜杠(/)起始的,如http://xxx.com。


0 0