Android:即使我具有正确的路径,也无法将文件保存到外部SD卡

时间:2019-04-26 08:43:22

标签: android memory storage external

所以基本上我的问题很简单,但是我没有找到任何解决方案。

首先,我已经在以下位置测试了这段代码:

  • Samsung Galaxy Tab Note 10.1 [2014] SM-P605,运行Android 5.1.1,API 22,并安装了32GB外部SD卡
  • 运行Android 9,API 28的Google Pixel 3 XL

长话短说,我正在制作一个应用程序,在某个阶段,该应用程序需要将图像文件(JPG图像文件)保存在以下位置:

  • 主要共享存储 “图片” 目录/storage/emulated/0/Pictures
  • 如果设备可以支持一个SD卡,则在外部SD卡的内部,如果已安装,则位于/storage/extSdCard/之类的内部。

这完全取决于要在其中保存图像的应用程序用户。

现在,将/storage/emulated/0/Pictures保存到主(公共)共享存储中非常简单, 根本没有问题(在Pixel 3 XL和Galaxy上完全没问题注意10.1,一切都很好) 。我的问题是将其保存到外部SD卡中。

我在下面使用以下代码来获取到外部SD卡的路径:

    String sdCardPath = System.getenv("SECONDARY_STORAGE");

如果我尝试打印上面的 sdCardPath ,我将得到/storage/extSdCard/,这是完全正确的,我使用ES File Explorer检查了Galaxy Note上的外部SD卡路径,这是与 sdCardPath 相同。

但是,当我将JPG文件保存到 sdCardPath 时,尽管看起来文件没有问题(我的日志没有输出任何错误),但由于某种原因,图像未保存在此处,实际上没有任何新内容保存到/storage/extSdCard中。

我还尝试在外部SD卡中创建 Pictures 文件夹,但是每当我执行以下代码块时,就可以这样做:

    //check if the folder already exists
    if (!filePath.exists()) {
        if (!filePath.mkdirs()) {
            showToast("Problem creating the picture directory");
        } else {
            showToast("Successfully created the folder \"Pictures\"");
        }
    }

它总是显示说创建图片目录存在问题

的吐司

同样,仅当我尝试将图片保存到外部SD卡时,才会发生这种情况。将其保存到/storage/emulated/0/Pictures中没有问题。

我已经在AndroidManifest.xml内部使用了这些权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

是的,如果有人对此有任何了解,您是否愿意与我分享或对发生的事情给我一点线索?我只希望能够将图片保存到外部SD卡中,如果可能,请在SD卡中创建 Pictures 文件夹以将所有图片保存在那里。

亲切的问候

0 个答案:

没有答案