Я программирую фотогалерею с помощью Android Studio, я оставил проект незавершенным, но смог получить доступ ко всем внутренним и внешним файлам. Сначала я запросил разрешения, затем выполнил несколько функций для фильтрации файлов, чтобы получить только изображения. Теперь по какой-то причине я не могу читать все папки, которые хочу отслеживать, например DCIM или Загрузки, и этого со мной раньше не случалось (почти 6 месяцев go). Я не знаю, из-за новой версии Android Studio или из-за того, что способ, которым я это сделал, больше не доступен. У меня есть документация в Android Developers, и я обнаружил, что каждое из следующих условий должно выполняться для доступа к файлам, созданным другими приложениями: вашему приложению было предоставлено разрешение READ_EXTERNAL_STORAGE. (Я сделал это) Файлы находятся в одной из следующих четко определенных коллекций мультимедиа: MediaStore.Images, MediaStore.Video, MediaStore.Audio. (Я не знал, что было что-то подобное) Я не знаю, правильный ли это способ сделать то, что я хочу делать сейчас ...
Я собираюсь оставьте ниже функцию, которую я сделал, чтобы найти DCIM, Загрузки и другие папки ...
//it searchs for a directory with the given name in the directory source
private File findDirectory(String directoryName, File directorySource) {
File[] files = directorySource.listFiles();
if (files != null) {
File aux;
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
if(files[i].getName().equals(directoryName)){
return files[i];
}
aux = findDirectory(directoryName, files[i]); // deep searching
if(aux != null){
return aux;
}
}
}
}
return null; // the directory is not on the storage
}