我遇到了问题。在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;
}
我做了什么让它按预期工作。谢谢!
答案 0 :(得分:0)
你现在不能使用File和FileOutputStream类在Android上的可移除micro SD卡上编写。
仅在特定于应用的目录中,在您的情况下
/storage/98C3-CED0/Android/data/<packagename>/files
如果要在整张卡上书写,请使用存储访问框架。