Следующий код работает с другими API, но 26
public static boolean cretaeDir()
{
String dir = Environment.getExternalStoragePublicDirectory(Environment.MEDIA_SHARED).getAbsolutePath();
java.io.File folder = new java.io.File(dir + "/SomeFolderName");
if (!folder.exists()) {
try{
if(folder.mkdir()) {
Log.e("Creating Folder", "Success");
return true;
} else {
Log.e("Creating Folder", "Failed");
return false;
}
} catch(Exception e){
e.printStackTrace();
return false;
}
}else{
return true;
}
}
Прежде чем кто-то спросит, да, разрешения были предоставлены, а также разрешение на использование присутствует в Манифестефайл.
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.package.name">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="com.android.vending.BILLING" />
<!-- Required OpenGL ES 2.0. for Maps V2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application/>
Тестовое устройство - Samsung S8, работает 8.0.0