首页 > 解决方案 > 保存文件显示 Permission Denied 虽然已授予权限

问题描述

我正在将图像从滑行保存到设备。我在第一次运行应用程序时请求许可,因为这就是我的应用程序所做的。

 final File myDir = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/DesiJewellery/");
public void saveImage(Bitmap bitmap, String img_title) {

    fname = img_title;
    myDir.mkdirs();
    File image = new File(myDir, fname);


    FileOutputStream outStream;
    if (image.exists()) {
        image.delete();
    }
    try {
        outStream = new FileOutputStream(image);
        bitmap.compress(Bitmap.CompressFormat.JPEG, 90, outStream);
        outStream.flush();
        outStream.close();
        success = true;
    } catch (FileNotFoundException e) {

        e.printStackTrace();
    } catch (IOException e) {

        e.printStackTrace();
    }

    if (success) {
        Toast.makeText(getActivity(), "Design saved - " + img_title, Toast.LENGTH_SHORT).show();
    } else {
       // Toast.makeText(getActivity(), "Something went wrong.", Toast.LENGTH_LONG).show();
    }
    // this one to show in gallery:

}

它在模拟器中运行良好,但在真实设备中显示

java.io.FileNotFoundException:/storage/emulated/0/DesiJewellery/m_aad14.jpg(权限被拒绝)

权限检查。我在 MainActivity 上运行它。

public void isStoragePermissionGranted() {

    if (Build.VERSION.SDK_INT >= 23) {
        if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)
                == PackageManager.PERMISSION_GRANTED && checkSelfPermission(android.Manifest.permission.READ_EXTERNAL_STORAGE)
                == PackageManager.PERMISSION_GRANTED) {

        } else {
            requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
            requestPermissions(new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
        }
    } else {

    }
}  

PS-我有 2 个真实设备。它在 Mashmallow 和 Nougat Emulator 中工作,但问题仅在 Oreo 中。

标签: androidandroid-permissions

解决方案


您应该在 Android Mainifest 中添加WRITE_EXTERNAL_PERMISSION ,如下所示:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
tools:node="replace"/>

推荐阅读