Папка «Внешний каталог» не создается в Android 8.0, но работает на устройствах 6.0 и 7.0, если целевая версия SDK составляет 26 - PullRequest
0 голосов
/ 01 февраля 2019

Каталог папок не создается External storage на устройствах Android 8.0, но работает на устройствах 6.0 и 7.0.Я всегда получаю

«Невозможно создать каталог приложения ошибка»

.Когда целевая версия приложения равна 26. Если я поставлю целевую версию <= 25, это создаст папку в <code>external storage на всех устройствах Android, включая 8.0.

    File appDirectory = new File(Environment.getExternalStorageDirectory() + File.separator + fileName);
    try {
        if (!appDirectory.exists() && !appDirectory.mkdir()) {
            Log.d(TAG, "Unable to create App Directory for: " + fileName + " File");
        }
    } catch (RuntimeException exception) {
        exception.printStackTrace();
    }

"WRITE_EXTERNAL_STORAGE" добавлено разрешение в файле манифеста.

1 Ответ

0 голосов
/ 01 февраля 2019

У меня есть похожие решения здесь: 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);
}

Это должно сработать.

...