0

I got a problem. On Android 4.0 its works well, but on 6.0 isn't. Of course i know about about READ/WRITE permission and do it on runtime. isExternalStorageWritable() method from android developer documentation returns true.

Path: /storage/98C3-CED0/iptv_records/...

Exception:

java.io.FileNotFoundException: /storage/98C3-CED0/iptv_records/.company-pvr-meta-info: open failed: EACCES (Permission denied)

String[] permissions = { Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE};
    PermissionsManager.verifyStoragePermissions(this, permissions);

public static void verifyStoragePermissions(Activity activity, String[] PERMISSIONS_STORAGE) {

    if (!isPermissionsGrantred(activity, PERMISSIONS_STORAGE)) {
        ActivityCompat.requestPermissions(
                activity,
                PERMISSIONS_STORAGE,
                REQUEST_EXTERNAL_STORAGE);
    }
}

private static boolean isPermissionsGrantred(Context context, String[] PERMISSIONS_STORAGE) {
    for (String permission : PERMISSIONS_STORAGE) {
        int granted = ActivityCompat.checkSelfPermission(context, permission);
        if (granted != PackageManager.PERMISSION_GRANTED) return false;
    }
    return true;
}

What have I do to make it works as expected. Thanks!

1 Answers1

0

You cannot write, using the File and FileOutputStream class, on a removeble micro SD card nowadays with Android.

Only in an app specific directory which in your case would be

 /storage/98C3-CED0/Android/data/<packagename>/files

If you want to write on the whole card then use Storage Access Framework.

greenapps
  • 11,154
  • 2
  • 16
  • 19