String caminhoFoto = getExternalFilesDir(null) + "/"+ System.currentTimeMillis() +".jpg";
File arquivoFoto = new File(caminhoFoto);
intentImage.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(arquivoFoto));
我写了这段代码,错误如下,我已经添加了提供程序,没有清单,没有任何内容,继续出现没有任何代码的错误,我被告知使用内容
Erro:
FATAL EXCEPTION: main
Process: br.com.viniciusdeep.agenda, PID: 22038
android.os.FileUriExposedException: file:///storage/emulated/0/Android/data/br.com.viniciusdeep.agenda/files/1524003224785.jpg exposed beyond app through ClipData.Item.getUri()
答案 0 :(得分:1)
在Android 7.0中,Uri上的文件方案实际上已被禁止。如果你尝试
要在转到其他应用的Intent中传递file:
Uri,您将会因FileUriExposedException
例外而崩溃。
您将在ClipData
这是来自StrictMode的更新版本。
StrictMode.VmPolicy.Builder
有penaltyDeathOnFileUriExposure()
方法
触发文件的检测:Uri值和结果
FileUriExposedException
个例外。并且,它似乎是预先配置的,
就像StrictMode如何预先配置为应用penaltyDeathOnNetwork()
(
NetworkOnMainThreadException
崩溃的来源。
但是,只有在targetSdkVersion
设置为24或更高时才会启动。在那
此外,您需要找到其他方式将您的内容发送到其他应用,例如
通过一个名为FileProvider
的类,或者你也可以
通过配置您自己的StrictMode.VmPolicy
并跳过来禁用检查
directFileUriExposure()
,虽然这不是一个很好的解决方案。