react-native-fs Android 11 сохранить файл в /хранилище/эмулируется/0/Скачать

#android #react-native #react-native-fs

Вопрос:

мы используем react-native-fs для Android 11. у меня проблема в том, что я больше не могу сохранять файлы Pfd и Excel в папке загрузки (/хранилище/эмуляция/0/Загрузка), потому что мы редактируем файлы через другие приложения, а затем снова загружаем файл в наше приложение. Я знаю, что с Android 11 доступ к хранилищу изменился, и это возможно только в так называемом хранилище области. Есть ли с помощью react-native-fs или как-то еще (через React Native) для хранения файлов, чтобы другие приложения могли видеть файлы, или вы можете открыть их в проводнике файлов Android или видеть их как общую папку для всех приложений. Существует также возможность с MANAGE_EXTERNAL_STORAGE, но этот параметр зарезервирован только для определенных приложений в соответствии с Android.

Версия React native: 64.2 react-native-fs: 2.18.0 Andriod 11

Заранее спасибо

   // /storage/emulated/0/Download/E-Akte_Schadenformular_2020.xlsx
  path = RNFS.DownloadDirectoryPath   '/'   dataBezeichnung   '.'   data.dateityp;



console.log('RNFS.DownloadDirectoryPath');
console.log(path);


  // write the file
  RNFS.writeFile(path, meThis.state.dateiBase64, 'base64').then((success) => {

    console.log('Datei Erfolgreich Runtergeladen!');

    Functions.toast("ERFOLGREICH", "Runterladen erfolgreich nnDie Datei:n"   dataBezeichnung   '.'   data.dateityp  "nnwurde auf Ihrem Gerät erfolgreich gespeichert", 10000);

  }).catch((err) => {

    Functions.toast("WARNUNG", "Runterladen nicht möglich, um die Datei auf Ihrem Gerät zu speichern, müssen Sie die Berechtigung für die eSASSApp aktivieren unternnGeräteeinstellungen -> Apps -> eSASSAPP -> Berechtigungen -> Dateien und Medien -> (Android bis 10 : Zugriff nur auf Mediendateien zulassen) Oder (Ab Andriod 11: Verwaltung aller Dateien zulassen)", 10000);

    console.log(err.message);
  });
 

сообщение об ошибке:

ENOENT: открыть не удалось: Действия (отказано в разрешении), открыть ‘/storage/emulated/0/Download/E-Akte_Schadenformular_2020.xlsx’

Комментарии:

1. На устройстве Android 11 каждое приложение может создавать и записывать файлы с любым расширением в папке «Загрузка и документы». Я не знаю, почему вы не можете сделать это с помощью react native. Для этого приложению не требуется MANAGE_EXTERNAL_STORAGE. Файлы, созданные вашим приложением, не видны другим приложениям. Если только это другое приложение не использует MANAGE_EXTERNAL_STORAGE или не использует SAF.

2. Я получаю это сообщение об ошибке (ENOENT: открыть не удалось: EACCES (отказано в разрешении), открыть ‘/storage/emulated/0/Download/E-Akte_Schadenformular_2020.xlsx’) когда я запускаю код на Android 11 (Api 30) на Android 10 (Api 29), он работает. У вас есть пример того, как я могу это сделать с помощью react-native-fs? Большое спасибо

3. Вы не отреагировали на мой комментарий, поэтому извините, что я не могу вам помочь.

4. Привет, blackapps, спасибо за ваш ответ. Как вы можете видеть, я использую функцию RNFS.WriteFile (), которая создает файл, созданный моим приложением, и только мое приложение может его видеть. Так что вы правы, что никто другой не может его открыть. Но этот файл я мог бы сохранить до Android 11 с той же функцией в папке загрузок. С Android 11 больше нет. Как мне получить это на Android 11, чтобы я мог сохранить файл там? Я ищу уже неделю и не нахожусь на связи. Я был бы очень рад вашей помощи. Спасибо, переведено с www.DeepL.com/Translator (бесплатная версия)

5. Повторяю: On an Android 11 device every app can create and write files with any extension in Download and Documents folder. I dont know why you can not do that with react native. . И я не использую react native.