代码之家  ›  专栏  ›  技术社区  ›  Alin

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

  •  0
  • Alin  · 技术社区  · 7 年前

    我正在使用 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的配置根目录

    我有两个问题:

    1. 什么会导致SD卡被视为 获取外部文件目录 而不是内部存储路径?我无法在我的设备上看到它,即使我的设备中插入了sd卡。因为内部存储应该首先被退回。

    2. 为什么会这样 getUriForFile 使用外部SD卡的路径时崩溃,如何修复?

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

    我看到了一些答案 FileProvider error onHuawei devices 某些设备返回的路径不同 ContextCompat.getExternalFilesDirs https://github.com/linchaolong/ImagePicker/issues/10 )那就是 getUriForFile文件 内部使用

    0 回复  |  直到 7 年前