Исключение файловой системы: Не удалось создать, путь = ‘/хранилище/эмулировано/0/4k’ (Ошибка ОС: Отказано в разрешении, errno = 13)

#android #flutter #permissions #android-permissions #permission-denied

Вопрос:

Я добавил все необходимое для загрузки файлов в локальное хранилище, но все равно получаю эту ошибку

В Манифесте

    <uses-permission android:name="android.permission.INTERNET"/>
   <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
   <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION"/>
       

  android:requestLegacyExternalStorage="true"
  android:hardwareAccelerated="true"
 

В pubspec.yaml

 permission_handler: ^6.1.1
 

В сборке.gradle

 compileSdkVersion 30
minSdkVersion 22
targetSdkVersion 30


 Future<bool> _requestPermission(Permission permission, Permission permission3,
      Permission permission4) async {
    print("xxxx IN ");

    if (await permission.isGranted) {
      print('xxxx ohhh');
      return true;
    } else {
      await permission.request();
      .then((value) => () {
            print("xxxx value"   value.toString());
            if (value == PermissionStatus.granted) {
              print("xxxx PERMISSION GRANTED ");
              return true;
            } else {
              print("xxxx PERMISSION DENIED ");
            }
          })
      .whenComplete(() => print('xxxx COMPLETED'))
      .onError((error, stackTrace) => () {
            print("xxxx onError "   error);
            print("xxxx onError "   stackTrace.toString());
          })
      .catchError((onError) => () {
            print('xxxx catchError '   onError.toString());
          });
      print("xxxx OUT ");
      // var result2 = await permission3.request();
      // var result3 = await permission4.request();

    }
    return false;
  }
 

с помощью этой функции посмотрите, что печатается
, а что не печатается с тех пор()…

введите описание изображения здесь

Пожалуйста, пожалуйста, помогите мне 🙂

Ответ №1:

Использовать android:requestLegacyExternalStorage="true" в application теге, а не в <activity> теге:

 <application         
    android:requestLegacyExternalStorage="true" >