URI URL URN

URN与URL隶属于URI,三者的意思分别如下:

URI:Uniform Resource Identify【统一资源标识符】

URL:Uniform Resource Location【统一资源定位符】

URN:Uniform Resource Name【统一资源名称】

1:URI

一般有三部分组成:

  1. 访问资源的命名机制。
  2. 存放资源的主机名。
  3. 资源自身的名称,由路径表示。

基本格式:

[scheme:]schemeSpecificPart/[path][#anchor]

注:其中scheme事先已经规定好,具体可以引用,后面加之以冒号与schemeSpecificPart隔开,再加上“/”,跟上路径。如果URI指向一个资源的内部,那么这种URI应该以“#”结束,并跟着一个片段标识符anchor。

举一个例子:
其中一个例子是http://www.baidu.com/html/test.htm#section,其中http是scheme,//www.cnn.com是 schemeSpecificPart,并且它的scheme与schemeSpecificPart被冒号分开了,紧接着路径html/test.htm,后面是片段标识符section.

具体在Andriod开发中的常见URI使用有如下一些例子,以下例子引用自:

http://blog.csdn.net/sunny09290/article/details/7514963

-----------------------------------------------------------------------

  1. 显示网页:   
  2.   1. Uri uri = Uri.parse("http://www.google.com");   
  3.   2. Intent it = new Intent(Intent.ACTION_VIEW,uri);   
  4.   3. startActivity(it);   
  5.   
  6.   
  7. 显示地图:   
  8.   1. Uri uri = Uri.parse("geo:38.899533,-77.036476");   
  9.   2. Intent it = new Intent(Intent.Action_VIEW,uri);   
  10.   3. startActivity(it);   
  11.   
  12.   
  13. 路径规划:   
  14.   1. Uri uri = Uri.parse("http://maps.google.com/maps?f=d&saddr=startLat%     20startLng&daddr=endLat%20endLng&hl=en");   
  15.   2. Intent it = new Intent(Intent.ACTION_VIEW,URI);   
  16.   3. startActivity(it);   
  17.   
  18.   
  19. 拨打电话:   
  20. 调用拨号程序   
  21.   1. Uri uri = Uri.parse("tel:xxxxxx");   
  22.   2. Intent it = new Intent(Intent.ACTION_DIAL, uri);     
  23.   3. startActivity(it);     
  24.   1. Uri uri = Uri.parse("tel.xxxxxx");   
  25.   2. Intent it =new Intent(Intent.ACTION_CALL,uri);   
  26.   3. 要使用这个必须在配置文件中加入<uses-permission id="Android.permission.CALL_PHONE" />   
  27. 发送SMS/MMS   
  28. 调用发送短信的程序   
  29.   1. Intent it = new Intent(Intent.ACTION_VIEW);   
  30.   2. it.putExtra("sms_body""The SMS text");   
  31.   3. it.setType("vnd.android-dir/mms-sms");   
  32.   4. startActivity(it);     
  33. 发送短信   
  34.   1. Uri uri = Uri.parse("smsto:0800000123");   
  35.   2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
  36.   3. it.putExtra("sms_body""The SMS text");   
  37.   4. startActivity(it);     
  38. 发送彩信   
  39.   1. Uri uri = Uri.parse("content://media/external/images/media/23");   
  40.   2. Intent it = new Intent(Intent.ACTION_SEND);   
  41.   3. it.putExtra("sms_body""some text");   
  42.   4. it.putExtra(Intent.EXTRA_STREAM, uri);   
  43.   5. it.setType("image/png");   
  44.   6. startActivity(it);   
  45. 发送Email   
  46.   1. Uri uri = Uri.parse("mailto:xxx@abc.com");   
  47.   2. Intent it = new Intent(Intent.ACTION_SENDTO, uri);   
  48.   3. startActivity(it);   
  49.   
  50.   
  51.   1. Intent it = new Intent(Intent.ACTION_SEND);   
  52.   2. it.putExtra(Intent.EXTRA_EMAIL, "me@abc.com");   
  53.   3. it.putExtra(Intent.EXTRA_TEXT, "The email body text");   
  54.   4. it.setType("text/plain");   
  55.   5. startActivity(Intent.createChooser(it, "Choose Email Client"));    
  56.   
  57.   
  58.   1. Intent it=new Intent(Intent.ACTION_SEND);     
  59.   2. String[] tos={"me@abc.com"};     
  60.   3. String[] ccs={"you@abc.com"};     
  61.   4. it.putExtra(Intent.EXTRA_EMAIL, tos);     
  62.   5. it.putExtra(Intent.EXTRA_CC, ccs);     
  63.   6. it.putExtra(Intent.EXTRA_TEXT, "The email body text");     
  64.   7. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");     
  65.   8. it.setType("message/rfc822");     
  66.   9. startActivity(Intent.createChooser(it, "Choose Email Client"));   
  67.   
  68.   
  69. 添加附件   
  70.   1. Intent it = new Intent(Intent.ACTION_SEND);   
  71.   2. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");   
  72.   3. it.putExtra(Intent.EXTRA_STREAM, "[url=]file:///sdcard/mysong.mp3[/url]");   
  73.   4. sendIntent.setType("audio/mp3");   
  74.   5. startActivity(Intent.createChooser(it, "Choose Email Client"));   
  75. 播放多媒体   
  76.   1.     
  77.   2. Intent it = new Intent(Intent.ACTION_VIEW);   
  78.   3. Uri uri = Uri.parse("[url=]file:///sdcard/song.mp3[/url]");   
  79.   4. it.setDataAndType(uri, "audio/mp3");   
  80.   5. startActivity(it);   
  81.   1. Uri uri = Uri.withAppendedPath(MediaStore.Audio.Media.INTERNAL_CONTENT_URI, "1");   
  82.   2. Intent it = new Intent(Intent.ACTION_VIEW, uri);   
  83.   3. startActivity(it);     
  84. Uninstall 程序   
  85.   1. Uri uri = Uri.fromParts("package", strPackageName, null);   
  86.   2. Intent it = new Intent(Intent.ACTION_DELETE, uri);   
  87.   3. startActivity(it);   
  88. //调用相册   
  89. public static final String MIME_TYPE_IMAGE_JPEG = "image/*";   
  90. public static final int ACTIVITY_GET_IMAGE = 0;   
  91. Intent getImage = new Intent(Intent.ACTION_GET_CONTENT);   
  92. getImage.addCategory(Intent.CATEGORY_OPENABLE);   
  93. getImage.setType(MIME_TYPE_IMAGE_JPEG);   
  94. startActivityForResult(getImage, ACTIVITY_GET_IMAGE);   
  95. //调用系统相机应用程序,并存储拍下来的照片   
  96. Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);   
  97. time = Calendar.getInstance().getTimeInMillis();   
  98. intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(Environment   
  99. .getExternalStorageDirectory().getAbsolutePath()+"/tucue", time + ".jpg")));   
  100. startActivityForResult(intent, ACTIVITY_GET_CAMERA_IMAGE);   
  101. uninstall apk   
  102. /**未测试   
  103. Uri uninstallUri = Uri.fromParts("package""xxx"null);   
  104. returnIt = new Intent(Intent.ACTION_DELETE, uninstallUri);   
  105. */   
  106. Uri packageURI = Uri.parse("package:"+wistatmap);     
  107. Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);     
  108. startActivity(uninstallIntent);   
  109. install apk   
  110. Uri installUri = Uri.fromParts("package""xxx"null);   
  111. returnIt = new Intent(Intent.ACTION_PACKAGE_ADDED, installUri);   
  112. play audio   
  113. Uri playUri = Uri.parse("[url=]file:///sdcard/download/everything.mp3[/url]");   
  114. returnIt = new Intent(Intent.ACTION_VIEW, playUri);   
  115. //发送附件   
  116. Intent it = new Intent(Intent.ACTION_SEND);     
  117. it.putExtra(Intent.EXTRA_SUBJECT, "The email subject text");     
  118. it.putExtra(Intent.EXTRA_STREAM, "[url=]file:///sdcard/eoe.mp3[/url]");     
  119. sendIntent.setType("audio/mp3");     
  120. startActivity(Intent.createChooser(it, "Choose Email Client"));   
  121. //搜索应用   
  122. Uri uri = Uri.parse("market://search?q=pname:pkg_name");     
  123. Intent it = new Intent(Intent.ACTION_VIEW, uri);     
  124. startActivity(it);     
  125. //where pkg_name is the full package path for an application   
  126. //进入联系人页面   
  127. Intent intent = new Intent();   
  128. intent.setAction(Intent.ACTION_VIEW);   
  129. intent.setData(People.CONTENT_URI);   
  130. startActivity(intent);   
  131. //查看指定联系人   
  132. Uri personUri = ContentUris.withAppendedId(People.CONTENT_URI, info.id);//info.id联系人ID   
  133. Intent intent = new Intent();   
  134. intent.setAction(Intent.ACTION_VIEW);   
  135. intent.setData(personUri);   
  136. startActivity(intent);  

-------------------------------------------------------------------------------

2:URL

URL的格式

URL的格式由下列三部分组成:

  1. 第一部分是协议(或称为服务方式);
  2. 第二部分是存有该资源的主机IP地址(有时也包括端口号);
  3. 第三部分是主机资源的具体地址。,如目录和文件名等。

第一部分和第二部分之间用“://”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。

3:URN

URL的一种更新形式,统一资源名称(URN, Uniform Resource Name)不依赖于位置,并且有可能减少失效连接的个数。但是其流行还需假以时日,因为它需要更精密软件的支持。详情请参考专业资料。

总结:体系中的URI、URL和URN是彼此关联的。URI的范畴位于体系的顶层,URL和URN的范畴位于体系的底层。


作者:KillerLegend
出处:http://www.cnblogs.com/KillerLegend/
分享最新的资源,分享个人所得,欢迎关注我的新浪微博
新浪微博主页:ikey4u
我的个人博客:www.ikey4u.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 
原文地址:https://www.cnblogs.com/killerlegend/p/3240311.html