尝试写入/存储时拒绝访问

时间:2018-02-20 10:24:35

标签: android permissions android-6.0-marshmallow android-external-storage

我遇到了问题。在Android 4.0上它运行良好,但6.0不是。当然我知道READ / WRITE权限并在运行时执行。 android开发者文档中的isExternalStorageWritable()方法返回true。

路径:/ storage / 98C3-CED0 / iptv_records /...

例外:

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;
}

我做了什么让它按预期工作。谢谢!

1 个答案:

答案 0 :(得分:0)

你现在不能使用File和FileOutputStream类在Android上的可移除micro SD卡上编写。

仅在特定于应用的目录中,在您的情况下

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

如果要在整张卡上书写,请使用存储访问框架。