以下代码可以按意图打开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");
我知道两个方法返回的实例的类类型不同,但这是上面代码的关键吗?
顺便说一句,网址是正确的,文件存在。
答案 0 :(得分:0)
Uri是用于向ContentProvider提供内容的类型。 uri是pdf文件的路径吗? Uri.parse如何知道你传递的是pdf而不仅仅是一个网址?这就是需要fromFile的原因。