В моем приложении я сохраняю файлы изображений различных типов, видео, PDF и т. Д. Я создаю каталог, если он еще не существует, и сохраняю файлы, созданные моим приложением, в эту папку, чтобы пользователь моглегко найти файлы, используемые и созданные моим приложением. Но в Android 10 я не могу проверить и создать каталог во внешнем хранилище.
Я знаю, что могу добавить android:requestLegacyExternalStorage="true"
в свой манифест, чтобы продолжать использовать старую функциональность, но это не постоянное решение. Кроме того, я не хочу использовать getExternalFilesDir()
, так как эта папка, созданная этим методом, будет удалена, если пользователь удалит мое приложение, и я хочу, чтобы файлы, сохраненные приложением, оставались на его устройстве, чтобы эти файлы можно было использовать. снова.
Это код, который я использую в настоящее время для проверки и создания каталога моего приложения и сохранения файла "myFile" в этом каталоге.
File sd =Environment.getExternalStorageDirectory();
File directory = new File(sd.getAbsolutePath() + "/" + getResources().getString(R.string.app_name));
//create directory if not exist
if (!directory.isDirectory()) {
directory.mkdirs();
}
File file = new File(directory, myFile);
Как мне добитьсятот же результат в Android 10? Что я точно хочу:
- Чтобы проверить, существует ли каталог с именем моего приложения или нет. Если этот каталог не существует, создайте его во внешнем хранилище устройства.
- Сохраните все файлы, созданные моим приложением, в этом каталоге.
- Эта папка не должна удаляться, даже если пользователь удаляет ее. приложение.
- Чтение файлов из этой папки.