我正在尝试从照片路径创建位图,如下所示:
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.
答案 0 :(得分:3)
该应用尚未批准写入外部存储器的权限,这是一个名为Run time permission的Android 23 Marshmallow的新功能。
首先需要创建一个运行时权限,以便用户在写入外部存储器之前接受并批准写入外部存储器。
答案 1 :(得分:0)
你可以试试这个。
Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);
到
Bitmap bitmap = BitmapFactory.decodeFile("file://"+mCurrentPhotoPath);
我希望这会对你有所帮助。感谢