URI和Uri类有什么区别?

10

我很困惑,如何在Android开发中使用Uri,因为我要在Intent'sAction dial中使用它。

Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:555-2368"));

我想做的事情:

我想创建一个文件,里面放入两个电话号码。然后,我想使用 toUri() 方法处理这个文件,并将该 Uri 放入意图中,看看会发生什么。


你为什么不按照你所描述的去做呢? - vbence
请看这里:https://dev59.com/a3VC5IYBdhLWcg3w0EoD - Shreyos Adikari
3个回答

6

java.net.URI是可变的。

android.net.Uri是不可变的。

java.net.URI

Uniform Resource Identifier用于标识抽象或物理资源,如RFC 2396所指定的那样。

android.net.Uri 。URI引用包括一个URI和一个片段,即URI后面的组件'#'。构建并解析符合RFC 2396的URI引用。

为了提高性能,此类几乎不进行验证。对于无效输入,行为是未定义的。这个类非常容易出错--在面对无效输入时,它会返回垃圾而不是抛出异常,除非另有规定。


请提供一个简单的例子。 - Tushar
使它们成为不可变的有什么好处? - Tushar
2
java.net.URI是不可变的。根据JavaDocs:“该类提供了从其组件或通过解析其字符串形式创建URI实例的构造函数,用于访问实例的各种组件的方法,以及用于规范化、解析和相对化URI实例的方法。该类的实例是不可变的。” - Jeff

6
根据Android API文档,您可以使用以下代码创建文件Uri

public static Uri fromFile (File file)


请注意,本文中保留了HTML标记。

-1

URI 用于标识,而 URL 用于定位;然而,位置也是一种标识, 因此每个 URL 也是一个 URI,但有些 URI 不是 URL。

URL - http://example.com/some/page.html

URI - /some/page.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接