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

时间:2016-04-01 13:45:33

标签: java android bitmap bitmapfactory

我正在尝试从照片路径创建位图,如下所示:

    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很新,这是我的第一篇文章。希望你能帮助我。谢谢!

供您参考,我使用的是android studio和genymotion。应用API为23.

2 个答案:

答案 0 :(得分:3)

该应用尚未批准写入外部存储器的权限,这是一个名为Run time permission的Android 23 Marshmallow的新功能。

首先需要创建一个运行时权限,以便用户在写入外部存储器之前接受并批准写入外部存储器。

答案 1 :(得分:0)

你可以试试这个。

 Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);

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

我希望这会对你有所帮助。感谢