0

我已经在我的应用程序中创建了一个 pdf 文件并成功地将其存储在 sdCard 中,现在我想将 pdf 存储在我的 sdcard 中而不是存储在内部存储中,如此处所示但是当我打开 pdf 阅读器的意图时:

Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(file);
Log.v("Path",file.getAbsolutePath()); // Path data/data/com.cloudchowk.his.patient/files/LIPID PROFILE1300000403.pdf
i.setDataAndType(uri, "application/pdf");
startActivity(i);

PDF 阅读器显示错误The document path is not valid.

我已经在两台设备上尝试过,一台已植根,另一台未植根,但在其中任何一台上都不起作用。我应该怎么办 ?有任何想法吗?

4

2 回答 2

0

获取路径并创建 URI

     File internalFile = getFileStreamPath("pdf path");
     Uri file = Uri.fromFile(internalFile);
     Intent i = new Intent();
     i.setAction(Intent.ACTION_VIEW);
     i.setDataAndType(file, "application/pdf");
     startActivity(i);
于 2013-07-16T05:43:43.250 回答
0

要使内部存储中的文件可供其他应用程序使用,最简洁的方法是使用内容提供程序。幸运的是,Android 附带了FileProvider——一个可以满足您需求的实现。您不需要实现代码,只需要在清单中指定提供程序即可。

于 2015-12-07T16:15:07.913 回答