android.os.FileUriExposedException: file:///storage/emulated/0/MyApp/Camera_20180105_172234.jpg exposed beyond app through ClipData.Item.getUri()
所以我希望有人能帮我解决这个问题:)
谢谢
private Uri getTempUri() {
// Create an image file name
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
String dt = sdf.format(new Date());
imageFile = null;
imageFile = new File(Environment.getExternalStorageDirectory()
+ "/MyApp/", "Camera_" + dt + ".jpg");
AppLog.Log(
TAG,
"New Camera Image Path:- "
+ Environment.getExternalStorageDirectory()
+ "/MyApp/" + "Camera_" + dt + ".jpg");
File file = new File(Environment.getExternalStorageDirectory() + "/MyApp");
if (!file.exists()) {
file.mkdir();
}
imagePath = Environment.getExternalStorageDirectory() + "/MyApp/"
+ "Camera_" + dt + ".jpg";
imageUri = Uri.fromFile(imageFile);
return imageUri;
}
对于SDK24及以上版本,如果需要获取应用程序存储之外的文件Uri,则会出现以下错误。
@eranda.del解决方案允许您更改策略以允许此操作,并且运行良好。但是,如果您希望遵循google指南而不必更改应用程序的API策略,则必须使用文件提供程序。
首先,要获取文件的URI,需要使用FileProvider.getUriforFile()方法:
Uri imageUri = FileProvider.getUriForFile(
MainActivity.this,
"com.example.homefolder.example.provider", //(use your app signature + ".provider" )
imageFile);
然后您需要在您的android清单中配置您的提供程序:
<application>
...
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="com.example.homefolder.example.provider"
android:exported="false"
android:grantUriPermissions="true">
<!-- ressource file to create -->
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths">
</meta-data>
</provider>
</application>
<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-path name="external_files" path="." />
</paths>
在以Android API<24为目标的Delphi早期版本(10.3 Rio之前)中,可以创建文件意图,如使用Delphi使用外部图库打开图像的问题答案所示 但是,既然10.3的目标是Android API>=24,那么这段代码就会产生这个问题的主题。 我试图在Delphi使用android fileprovider向默认的android gallery发送打开和图像文件的意图来回答这个问题,但
问题陈述 我正在尝试创建VCardfile,它已经成功创建,但是,我想共享创建的文件
问题内容: 当前,我有一个Java Standalone Swing应用程序。 现在,当用户单击Swing应用程序中的按钮时,我想启动另一个Java应用程序(说:Calculator.jar) 我可以知道什么是便携式方法吗?这样它就可以在多个OS中工作吗? 问题答案: 使用或只是将其放在类路径中并调用其。
问题内容: app.py test.py 我正在将 应用程序 导入到 test.py中 以进行单元测试。在将’ before_request ‘函数调用到test.py中时,它会抛出RuntimeError:在应用程序上下文之外工作同样会在调用’ input_info() ‘时发生 问题答案: Flask有一个Application Context ,似乎您需要执行以下操作: 您可能还可以将调用推
我已经从服务器下载了apk文件,现在正在安装,但它给了我一个错误:通过Intent暴露在应用程序之外。getData() 我的代码是 我已经搜索了错误,找到了一些但无法解决的问题。建议使用FileProvider。我这样做只是为了查看日志 可能会有帮助。 请提供帮助和建议。
问题内容: 我有一个外部程序Otter,该程序将一些文件名作为参数并创建了一个输出文件,也将其指定为参数。因此,例如,如果我的输入是“ proof.in”,并且我希望将输出放置在“ proof.out”文件中,则可以在终端中运行以下命令: “ proof.in”文件必须与水獭可执行文件位于同一文件中。 问题是我需要Java提供此功能,因此在我的Java代码中执行以下操作: 但是在此行之后,整个用户