java.io.fileNotFoundException(权限被拒绝)

时间:2018-07-11 17:15:51

标签: android exception permissions ioexception

我有下一个方法:

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图像-位图对象,我用另一种方法声明了它。

2 个答案:

答案 0 :(得分:0)

尝试以下解决方案之一是否有效:

  1. "storage/sdcard1"替换为"storage/sdcard1/"
  2. path + ""替换为path + "/"
  3. "test.png"替换为"/test.png"

我认为它只是在这三行中缺少一个斜线

答案 1 :(得分:0)

有评论的人告诉我,如果您使用的是Android 4.4以上版本,则只有当您将sdcard设置为主内存或有时您的手机已扎根时,您才能写入sdcard。我尝试过,它确实有效。