从照片路径创建位图时权限被拒绝

Permission denied when creating bitmap from photo path

我正在尝试从这样的照片路径创建位图:

    Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);

并且我在清单中添加了权限:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

之前用的很好。但是突然出现问题,说:

    E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/image_1.jpg: open failed: EACCES (Permission denied)

这几天一直在寻找答案,但还是想不通。我是 android 的新手,这是我的第一个 post。希望你能帮助我。谢谢!

供您参考,我正在使用 android studio 和 genymotion。应用 API 是 23。

该应用尚未获得写入外部存储器的权限,这是 android 23 Marshmallow 的新功能 Run time permission

您首先需要创建一个运行时权限,让用户接受并批准写入外部存储器,然后才能写入。

你可以试试这个。

 Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);

 Bitmap bitmap = BitmapFactory.decodeFile("file://"+mCurrentPhotoPath);

希望对您有所帮助。谢谢