是什么会导致getExternalFilesDir从外部SD卡返回路径?

时间:2018-10-31 20:57:15

标签: android android-external-storage android-fileprovider

我正在使用context.getExternalFilesDir来获取应用程序的文件夹,并且该文件夹在大多数设备上都是内部存储仿真卡:/storage/emulated/0/Android/data/mypackage.com/files

这是真的,并且根据文档:

  

将绝对路径返回到主共享/外部存储设备上目录的绝对路径,应用程序可以在该目录中放置其拥有的永久文件。

现在,在返回的getExternalFilesDir上创建的文件夹中,我有一个文件myimage.png要与其他应用共享,调用FileProvider.getUriForFile(...myimage.png)在某些设备上会引发错误,错误就像:

  

无法找到包含/storage/1234-1234/Android/data/mypackage.com/files

的已配置根目录

我有2个问题:

  1. 什么会导致将sdcard视为getExternalFilesDir而不是内部存储路径?即使我在设备中插入了SD卡,也无法在设备上看到它。因为应该先返回内部存储空间。

  2. 使用外部sdcard的路径时,getUriForFile为什么会崩溃以及如何解决?

我的文件路径包含<external-files-path >项,并且在使用storage/emulated/0/Android路径时工作正常且没有崩溃

我在FileProvider error onHuawei devices看到了一些答案,即某些设备在ContextCompat.getExternalFilesDirs上返回的路径不同,而其他提及(https://github.com/linchaolong/ImagePicker/issues/10)的情况是getUriForFile在内部使用{{1} }。

0 个答案:

没有答案