Android 9 无法在 Android 外部 public 路径内创建目录("storage/emulated/0/MyImages")
Android 9 can't create directory inside Android external public path("storage/emulated/0/MyImages")
我想在 Android 外部 public 路径("storage/emulated/0/MyImages"
).
中创建一个目录
代码在 Android 9 上 运行ning。授予所有 运行 时间写入外部存储的权限。
试过这样的代码。
File dir = new File(Environment.getExternalStorageDirectory() + File.separator + "MyImages");
if (!dir.exists) {
dir.mkdirs();
}
dir
变量的路径为 - "/storage/emulated/0/MyImages"
。
dir.mkdirs()
总是 returns 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();
}
}
我想在 Android 外部 public 路径("storage/emulated/0/MyImages"
).
代码在 Android 9 上 运行ning。授予所有 运行 时间写入外部存储的权限。
试过这样的代码。
File dir = new File(Environment.getExternalStorageDirectory() + File.separator + "MyImages");
if (!dir.exists) {
dir.mkdirs();
}
dir
变量的路径为 - "/storage/emulated/0/MyImages"
。
dir.mkdirs()
总是 returns 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();
}
}