我有下一个方法:
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(权限被拒绝)。 我的清单文件中有下一个权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
那么有人可以告诉我怎么了吗?
P.S图像-位图对象,我用另一种方法声明了它。
答案 0 :(得分:0)
尝试以下解决方案之一是否有效:
"storage/sdcard1"
替换为"storage/sdcard1/"
path + ""
替换为path + "/"
"test.png"
替换为"/test.png"
我认为它只是在这三行中缺少一个斜线
答案 1 :(得分:0)
有评论的人告诉我,如果您使用的是Android 4.4以上版本,则只有当您将sdcard设置为主内存或有时您的手机已扎根时,您才能写入sdcard。我尝试过,它确实有效。