Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create folder (Android R - Api 30)?

Read that Android 11 has scoped storage, but I can't find any information, how can I create and use folder in /storage/emulated/0/ ? Old methods works only on api 29 and below :(

like image 433
Theo Jedi Avatar asked Sep 22 '20 19:09

Theo Jedi


2 Answers

Since Android Q we can create folders in app specif storage. its path:

Android->data->package name->files->your folder

Use this:

File file;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    file = new File (this.getExternalFilesDir(null) + path);
} else {
    file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + path);
}

if (!file.exists()) {
    file.mkdirs();
}
like image 59
dimvolk Avatar answered Sep 18 '22 00:09

dimvolk


On Android 11 the restrictions in Android 10 concerning access to external storage are much less.

Environment.getExternalStorageDirectory()

is readable again and

Environment.getExternalStoragePublicDirectory(...)

is writable for folders like Environment.DIRECTORY_DOCUMENTS and so on.

The Android OS is very picky using the right extensions for your files in most of those directories.

like image 28
blackapps Avatar answered Sep 18 '22 00:09

blackapps