所以基本上我的问题很简单,但是我没有找到任何解决方案。
首先,我已经在以下位置测试了这段代码:
长话短说,我正在制作一个应用程序,在某个阶段,该应用程序需要将图像文件(JPG图像文件)保存在以下位置:
/storage/emulated/0/Pictures
或/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 文件夹以将所有图片保存在那里。
亲切的问候