Getting all the time “permission denied” or “no such file or directory” by trying to save Bitmap image. What should i do?

后端 未结 1 1065
生来不讨喜
生来不讨喜 2020-11-29 11:55

I`m trying to save Bitmap image by this code:

File sdcard = Environment.getExternalStorageDirectory();
            String filename = \"test\";
            Fi         


        
相关标签:
1条回答
  • 2020-11-29 12:27

    runtime permissions letting user to allow or deny any permission at runtime. use this lib Dexter library.also check an working exmple here

    Include the library in your build.gradle

    dependencies{
        implementation 'com.karumi:dexter:4.2.0'
    }
    

    this example requests WRITE_EXTERNAL_STORAGE.

    Dexter.withActivity(this)
                    .withPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                    .withListener(new PermissionListener() {
                        @Override
                        public void onPermissionGranted(PermissionGrantedResponse response) {
                            // permission is granted, open the camera
                        }
    
                        @Override
                        public void onPermissionDenied(PermissionDeniedResponse response) {
                            // check for permanent denial of permission
                            if (response.isPermanentlyDenied()) {
                                // navigate user to app settings
                            }
                        }
    
                        @Override
                        public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
                            token.continuePermissionRequest();
                        }
                    }).check();
    

    Requesting Multiple Permissions To request multiple permissions at the same time, you can use withPermissions() method. Below code requests STORAGE and LOCATION permissions.

    Dexter.withActivity(this)
                    .withPermissions(
                            Manifest.permission.READ_EXTERNAL_STORAGE,
                            Manifest.permission.WRITE_EXTERNAL_STORAGE,
                            Manifest.permission.ACCESS_FINE_LOCATION)
                    .withListener(new MultiplePermissionsListener() {
                        @Override
                        public void onPermissionsChecked(MultiplePermissionsReport report) {
                            // check if all permissions are granted
                            if (report.areAllPermissionsGranted()) {
                                // do you work now
                            }
    
                            // check for permanent denial of any permission
                            if (report.isAnyPermissionPermanentlyDenied()) {
                                // permission is denied permenantly, navigate user to app settings
                            }
                        }
    
                        @Override
                        public void onPermissionRationaleShouldBeShown(List<PermissionRequest> permissions, PermissionToken token) {
                            token.continuePermissionRequest();
                        }
                    })
                    .onSameThread()
                    .check();
    
    0 讨论(0)
提交回复
热议问题