У меня есть похожие решения здесь: Android 8.1 - проблема при попытке создать каталог во внешнем хранилище
От Android 6.0 до последней версии, запрос глубокого разрешения требует ручного кодирования, а не предоставленияэто в манифесте.В вашем коде нет ничего плохого.Вот что нужно доказать: на вашем устройстве Android перейдите в «Настройки»> «Приложения»> «Ваше приложение» >> «Разрешения» >> «Разрешить разрешение внешнего хранилища».И ваше приложение будет работать, попробуйте.(Но это должны делать и другие пользователи). Вот как это сделать, не заходя в настройки:
Внутри onCreate вставьте это.
if(ContextCompat.checkSelfPermission
(this,Manifest.permission.WRITE_EXTERNAL_STORAGE) !=
PackageManager.PERMISSION_GRANTED)
{
ActivityCompat.requestPermissions(this,new String[]
{
Manifest.Permission.WRITE_EXTERNAL_STORAGE,
Manifest.Permission.READ_EXTERNAL_STORAGE,
//other permissions you like to add
},1);
}
Это должно сработать.