我遇到了 FileUriExposedException 东西,您尝试将 file:/// Uri 发送到另一个应用程序(在本例中为相机),我应该改用 FileProvider(导致 api 24 Nougat 崩溃)。
在我们的应用程序中,我们使用 Context 的getExternalFilesDir(String)
方法生成一个文件:
context.getExternalFilesDir("attachments");
FileProvider文档让我相信如果我希望功能与现在相同,我应该external-files-path
在我的中使用。paths.xml
<?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-dir
https://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
对我有用。