【发布时间】:2018-07-11 17:15:51
【问题描述】:
我有下一个方法:
public void saveOnSDCard() {
File path = new File("storage/sdcard1");
File dir = new File(path + "");
if (!dir.exists()) {
dir.mkdirs();
}
File file = new File(dir, "test.png");
OutputStream os;
try {
os = new FileOutputStream(file);
image.compress(Bitmap.CompressFormat.PNG, 100, os);
os.flush();
os.close();
} catch (IOException ioe) {
showToast("Ошибка " + ioe.toString());
}
}
但是当我尝试调用它时,它给了我一个 java.io.fileNotFoundException(Permission denied)。 我的清单文件中有下一个权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
那么谁能告诉我怎么了?
P.S 图像 - 位图对象,我用另一种方法声明它。
【问题讨论】:
-
你正在尝试这个 API 版本或 android os 版本是什么
-
@Psypher 我在 API 19 和 API 25 上尝试了此代码。两者都不起作用
-
能否调试方法并获取“path”、“dir”和“file”对象的路径?
-
@GiulioPettenuzzo 已经
-
@ Максим Коваль 发布您的错误日志,以便轻松检测问题,如果您尝试运行此代码 sdk >=23,那么您必须添加运行时权限才能访问外部存储跨度>
标签: android exception permissions ioexception