繁体   English   中英

Android 9 无法在 Android 外部公共路径中创建目录(“storage/emulated/0/MyImages”)

[英]Android 9 can't create directory inside Android external public path("storage/emulated/0/MyImages")

我想在 Android 外部公共路径( "storage/emulated/0/MyImages" )中创建一个目录。

代码在 Android 9 上运行。授予在外部存储上写入的所有运行时权限。

试过这样的代码。

File dir = new File(Environment.getExternalStorageDirectory() + File.separator + "MyImages");
if (!dir.exists) {
  dir.mkdirs();
}

dir变量具有路径 - "/storage/emulated/0/MyImages"

dir.mkdirs()总是返回false LogCat 有一个简短的日志:

W/System.err: java.io.IOException: No such file or directory
W/System.err: at java.io.UnixFileSystem.createFileExclusively0(Native Method)
W/System.err: at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:281)
W/System.err: at java.io.File.createNewFile(File.java:1008)

首先,如果是的话检查权限然后调用你的函数来调用 showPhoneStatePermission

在清单中添加权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

private void showPhoneStatePermission() {
    int permissionCheck = ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
    if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
        if (ActivityCompat.shouldShowRequestPermissionRationale(this,Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
            showExplanation("Permission Needed", "Rationale", Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_PERMISSION_WRITE_EXTERNAL_STORAGE);
        } else {
            requestPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, REQUEST_PERMISSION_WRITE_EXTERNAL_STORAGE);
        }
    } else {
        Toast.makeText(MainActivity.this, "Permission (already) Granted!", Toast.LENGTH_SHORT).show();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM