Search code examples
androidandroid-studioandroid-permissionsandroid-6.0-marshmallowpermission-denied

Permission READ_EXTERNAL_STORAGE is always denied


I'm trying to request a runtime permission with Android 6.0. This is my code:

private void enablePermission() {
    String[] PERMISSIONS = { Manifest.permission.READ_EXTERNAL_STORAGE};

    if (!hasPermissions(this, PERMISSIONS)) {
        ActivityCompat.requestPermissions(this, PERMISSIONS,
                PERMISSION_ALL);
    }
}


public static boolean hasPermissions(Context context, String... permissions) {

    for (String permission : permissions) {
        if (ContextCompat.checkSelfPermission(context, permission) !=
                PackageManager.PERMISSION_GRANTED) {
            return false;
        }
    }

    return true;
}


@Override
public void onRequestPermissionsResult(int requestCode, String[]
        permissions, int[] grantResults) {
    switch (requestCode) {
        case PERMISSION_ALL:
            if (grantResults.length > 0 && grantResults[0] ==
                    PackageManager.PERMISSION_GRANTED) {
                Log.d("Permission", "Granted");
            } else {
                Log.d("Permission", "Denied");
            }
    }
}

It always tells my "Permission Denied" in onRequestPermissionsResult. I tried this code with ACCESS_FINE_LOCATION and it worked.


Solution

  • I solved my problem by restart my virtual device in Genymotion .