BitmapFactory:无法解码流:java.io.FileNotFoundException

Mon*_*ali 5 android filenotfoundexception bitmapfactory

我有一个关于BitMapFactory.decodeFile的问题.

在我的应用程序中,我希望用户能够从他/她的设备中选择图像或拍照.然后必须在ImageView中显示

这是代码片段:

Uri selectedImage = data.getData();
String[] filePathColumn = {MediaStore.Images.Media.DATA};
Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
                    cursor.moveToFirst();
                    int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
                    String picturePath = cursor.getString(columnIndex);
                    cursor.close();
                    MyImage image = new MyImage();
                    image.setTitle("Test");
                    image.setDescription("test choose a photo from gallery and add it to " + "list view");
                    image.setDatetime(System.currentTimeMillis());
                    image.setPath(picturePath); 
Run Code Online (Sandbox Code Playgroud)

我得到了这个例外:

BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/WhatsApp/Media/WhatsApp Images/IMG-20170302-WA0012.jpg: open failed: EACCES (Permission denied)
Run Code Online (Sandbox Code Playgroud)

怎么解决它.请帮帮我.谢谢你...

Jd *_*ati 19

它的权限问题,您需要在清单中为外部读取存储添加权限,然后才能使用它,如果您使用的是6.0以上,那么您需要使用Easy权限.

写作:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

阅读:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

6.0以上:

private String[] galleryPermissions = {Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};

if (EasyPermissions.hasPermissions(this, galleryPermissions)) {
            pickImageFromGallery();
        } else {
            EasyPermissions.requestPermissions(this, "Access for storage",
                    101, galleryPermissions);
        }
Run Code Online (Sandbox Code Playgroud)

  • 什么是EasyPermissions,如果它是类或字段? (3认同)
  • 它的库编译'pub.devrel:easypermissions:0.2.1' (3认同)