首页 > 解决方案 > java.io.fileNotFoundException(权限被拒绝)

问题描述

我有下一个方法:

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" />

那么有人可以告诉我出了什么问题吗?

PS 图像 - 位图对象,我用另一种方法声明它。

标签: androidexceptionpermissionsioexception

解决方案


评论中的人告诉我,如果您有一个 android 4.4+,则只有当您将 sdcard 作为主存储器或有时当您的手机已植根时,您才能写入 sdcard。我试过了,它确实有效。


推荐阅读