为什么Uri.fromFile(新文件(url))工作而Uri.parse(url)不是按意图打开pdf?

时间:2015-11-11 03:27:47

标签: android android-intent uri

以下代码可以按意图打开pdf文件,效果很好:

Intent intent = new Intent();    
intent.setAction(Intent.ACTION_VIEW);   
intent.setDataAndType(Uri.fromFile(new File(url)), "application/pdf");    
if(intent.resolveActivity(getPackageManager()) != null){
    startActivity(intent);
}

但如果我将Uri.fromFile(new File(url))更改为Uri.parse(url),就像下面一样,它将无法打开pdf文件。为什么呢?

intent.setDataAndType(Uri.parse(url), "application/pdf");    

我知道两个方法返回的实例的类类型不同,但这是上面代码的关键吗?
顺便说一句,网址是正确的,文件存在。

1 个答案:

答案 0 :(得分:0)

Uri是用于向ContentProvider提供内容的类型。 uri是pdf文件的路径吗? Uri.parse如何知道你传递的是pdf而不仅仅是一个网址?这就是需要fromFile的原因。