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

Android Android.os.FileUriExposedException在Android中出现错误N[重复]

叶晋
2023-03-14

我在Orders文件夹中的外部存储中有图像,并且我正在尝试使用intent将该图像共享到外部应用程序

File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Orders");
String filename = "OrderID.jpg";
File file = new File(file,filename);
  Intent intent = new Intent(Intent.ACTION_SEND);
  intent.setType("image/*");
                intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
 intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(file));
                try {
                     startActivity(intent);
                } catch (android.content.ActivityNotFoundException ex) {

                }

我给了加载应用程序本身的存储权限,但每次应用程序崩溃时我都得到了

ndroid.os.FileUriExposedException: file:///storage/emulated/0/Orders/OrderID.jpg exposed beyond app through ClipData.Item.getUri()

有谁能帮我解决这个问题吗?我在谷歌上关注了很多帖子,但是没有用

https://github.com/mlsdev/rximagepicker/issues/13

共有1个答案

华谭三
2023-03-14

要将文件共享到其他应用程序时,必须使用FileProvider。

查看https://developer.android.com/training/secure-file-sharing/setup-sharing。

代码中使用FileProvider.GetUriforFile获取Uri,而不是Uri.fromFile(file)

FileProvider.getUriForFile(this,"your_package.fileprovider",photoFile);
 类似资料:
  • 我在尝试构建APK时遇到以下错误。我读过几篇关于如何解决这个问题的帖子,但由于我没有开发那么长时间,我不确定我在做什么。所以,希望有人能帮忙。 这是我的build.gradle(模块) 这是我的身材。格拉德尔项目 如果有人能帮忙,我将不胜感激,但我也没有经验。

  • 我有这段代码来连接服务器和客户端,我需要将json对象发送到android studio客户端,但是printwriter行中描述的方法有错误,我不知道问题出在哪里,请查看代码并帮助我 还有这个 错误是 我在通过套接字将数据写入客户端时出错,错误在getOutputStream中

  • 谢谢! 我的build.gradle看起来如下(不包括一般的其他东西)... 依赖项{compile fileTree(include:['*.jar'],dir:'libs')} 错误:类org.apache.xmlbeans.xml.Stream.Location已添加到输出中。请删除重复的副本。编译器不以现代.class文件格式为目标。推荐的(org.apache.log4j.chainsa

  • JAVA_HOME设置为无效目录:C:\Program Files\JAVA\jdk1.8.0_281\bin 请在您的环境中设置JAVA_HOME变量,以匹配您的JAVA安装位置。 如何解决这个问题??

  • 我正在尝试使用SQLite数据库在android中本地存储电子邮件。当我第一次调用,该数据库尚不存在,已创建。我在create语句中遇到语法错误。。。我的代码看起来像这样。。。 我不熟悉SQLite语法,我一直在寻找导致这种情况的原因,但没有任何结果。知道是什么引起的吗?数据库确实是本地存储此类数据的最佳方式。 准确的错误如下所示。。