У вас есть несколько проблем.
Сначала <files-path path="raw/" name="raw" />
говорит, что он обслуживает файлы из подкаталога raw/
в getFilesDir()
.Однако у new File(getContext().getFilesDir().getPath(), s)
такого каталога не будет, если только он не находится в s
, и ошибка предполагает, что его нет.Кстати, вы можете упростить это как new File(getContext().getFilesDir(), s)
.
Во-вторых, я думаю, что вы предполагаете существование каталога raw/
в getFilesDir()
.Если вы не создадите этот каталог, он не будет существовать.
В-третьих, я думаю, что вы думаете, что необработанные ресурсы - это файлы на устройстве.Они не.Это файлы на вашем компьютере разработчика.Это просто записи в файле APK на устройстве.
Итак, чтобы эта работа работала, вам нужно добавить код в:
Создать подкаталог raw/
off getFilesDir()
Используйте openRawResource()
для объекта Resources
, чтобы скопировать ресурс в файл в этом недавно созданном подкаталоге raw/
Используйте этот File
объект из предыдущего шага с FileProvider.getUriForFile()