【发布时间】:2016-08-30 12:37:31
【问题描述】:
我遇到了 FileUriExposedException 问题,您尝试将 file:/// Uri 发送到另一个应用程序(在本例中为相机),我应该使用 FileProvider 代替(导致 api 24 Nougat 崩溃)。
在我们的应用中,我们使用 Context 的getExternalFilesDir(String) 方法生成一个文件:
context.getExternalFilesDir("attachments");
FileProvider documentation 让我相信我应该在我的paths.xml 中使用external-files-path,如果我希望功能与现在相同。
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-files-path
name="attachments"
path="attachments/" />
</paths>
但是在谷歌上搜索了一些之后,我发现了一些让我认为 FileProvider 存在问题的东西,或者至少是 FileProvider 的文档......
- https://code.google.com/p/android/issues/detail?id=61170
- @commonsWare 回答和评论https://stackoverflow.com/a/30276915/921988
- 这个活动库的自述文件说它增加了对
external-files-dirhttps://github.com/commonsguy/cwac-provider#metadata-elements 的支持 - 另外,我现在收到
java.lang.IllegalArgumentException: Failed to find configured root that contains ...,但这可能是由其他原因造成的。
所以
- 如果我想匹配我的应用当前的工作方式,我是否认为应该使用
external-files-path? - 文档/FileProvider 真的损坏/不正确,我应该改用 cwac-provider 之类的东西吗?
更新
为了完整起见,正如下面@CommonsWare 建议的那样,使用 24.2.0 版本的 support-v4 对我有用。
【问题讨论】:
标签: android commonsware-cwac android-fileprovider android-7.0-nougat