我正在使用下面的代码将图像保存在 sd 卡中,但我一直收到下面的异常
private void SaveImage(Bitmap finalBitmap,String filename) {
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images");
myDir.mkdirs();
String fname = filename;
File file = new File (myDir, fname);
if (file.exists ()) file.delete ();
try {
FileOutputStream out = new FileOutputStream(file);
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
我在这里遗漏了什么吗?
最佳答案
如果您在 Android 版本 10 中遇到此问题,请打开 list 文件并将此行添加到您的应用程序标签中。
<application android:requestLegacyExternalStorage="true" .....>
这个问题是因为在 Android 10 中引入了范围存储。并确保您在 list 中添加权限请求并从用户那里获取运行时权限。在最新的 Android 版本中,您需要获得用户的运行时许可。
关于android - java.io.FileNotFoundException :/storage/emulated/0/saved_images/grub. jpg:打开失败:ENOENT(没有这样的文件或目录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27372833/