我正在尝试从我的应用的资产文件夹中打开一个pdf文件。
我使用了这段代码。
File pdfFile = new File("file:///android_asset/c.pdf");
Uri path = Uri.fromFile(pdfFile);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setDataAndType(path, "application/pdf");
startActivity(intent);
我的pdf文件没有设置密码,但是" OfficeSuite"在我试图打开时要求输入密码。
怎么办?
我尝试了几个文件。
答案 0 :(得分:1)
其他应用无法从您的应用中打开file:///android_asset
路径。
使用ContentProvider
将PDF流式传输到其他应用。 My StreamProvider
为此提供了开箱即用的解决方案。或者,将PDF复制到内部存储空间并使用FileProvider
,如this sample app所示。或者,将文件复制到外部存储空间并使用Uri.fromFile()
生成指向该文件的Uri
this will work with fewer and fewer apps over time。