当前位置: 首页 > 知识库问答 >
问题:

生成下载pdf时发生Android.os.FileUriExposedException错误

楚德辉
2023-03-14

无法生成pdf下载获取Android.os.fileuriexposedexception错误:file:///storage/emulated/0/download/inv-0002.pdf通过intent.getdata()超出应用程序公开

       String path = downloadPDF();

        if (path.length() == 0) {
            Toast.makeText(NewInvoiceActivity.this, getResources().getString(R.string.pdf_not_created), Toast.LENGTH_SHORT).show();
        } else {
            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setDataAndType(Uri.fromFile(new File(path)), "application/pdf");
            intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
            startActivity(intent);
        }

共有1个答案

谷梁英毅
2023-03-14

当您的targetSdk版本>=28时会出现这种情况,因此在onCreate()方法中的activy/fragment中使用这一行来忽略uri暴露

` StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();
    StrictMode.setVmPolicy(builder.build());

`

 类似资料:
  • 我是stackoverflow的新手,因此这是我的第一篇文章。请原谅我英语不好。。。我花了几个小时在相关的话题上,但没有一个能满足我的需要。我正在编写一个通讯簿,我希望我的用户能够随时下载pdf联系人列表。一切似乎都很顺利,但实际上客户端从未下载pdf文件,尽管我可以在使用chrome开发者工具的请求中看到它。这是我的密码: 当检查响应时,我得到如下结果: 有没有人好心告诉我出了什么事?

  • 大约34小时前,我生成了一个签名的apk,但现在,我无法生成一个签名的apk,我不知道如何解决这个问题。请帮忙 这是我的输出消息 > 错误:任务“:app:LintVitalRelease”执行失败。 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获得完整的见解。 这是我的Build.Gradle(应用程

  • 这篇文档阐述了如何通过使用Django视图动态输出PDF。这可以通过一个出色的、开源的Python PDF库ReportLab来实现。 动态生成PDF文件的优点是,你可以为不同目的创建自定义的PDF -- 这就是说,为不同的用户或者不同的内容。 例如,Django在kusports.com上用来为那些参加March Madness比赛的人,生成自定义的,便于打印的 NCAA 锦标赛晋级表作为PDF

  • 我正在使用node-html-pdf模块从我创建的模板生成一个pdf文件,生成后保存到我的服务器上。 现在这是完美的工作,但我真正需要的是,当我点击一个按钮,它生成PDF并下载文件,而不是保存它。 下面您可以看到我必须生成并保存文件的代码: 我想也许我可以你或,而不是,但我在这方面退出了新的,在留档中,它并不能真正解释如何和有效(或确实有效)。我希望也许有人能给我指明正确的方向?或者至少告诉我这是

  • 我正在努力从用户界面下载一个pdf文件(角),从Spring Boot生成。我可以用相同的API从浏览器下载pdf文件。 非常感谢快速的帮助。 SyntaxError:XMLHttpRequest.onload消息:“JSON at position 0”Stack:“SyntaxError:JSON at position 0 at JSON.Parse()at XMLHttpRequest.o

  • 我有一个问题,很难解释,但我会尽我最大的努力以最好的方式描述它。我的项目中有这个FXML(场景)(请参见行李概述)。当我点击“编辑所选行李”时,它会打开一个新的FXML文件并显示为弹出窗口。然而,由于一些奇怪的原因,当我尝试使用。setText或其他任何内容单击“编辑选定行李”按钮后,若要更改窗口上显示的输入字段,则会出现以下错误: 这是我用来使场景弹出的方法: 控制器: 我的行李。FXML Lu