У меня проблемы с чтением URL-адреса пути с моей SD-карты.Каталог камер null
Он всегда возвращает эту ошибку: Попытка получить длину нулевого массива: Попытка получить длину нулевого массива
Просмотр изображений на моем телефоне я получаю этот каталог в качестве каталога Фотопленка:
/storage/emulated/0/DCIM/Camera/imageName
я положил в моем манифесте права доступа к файлам:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Это мой код:
public void processImages() {
listOfImages = new ArrayList<>();
Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
if (isSDPresent) {
//returns same path - /storage/emulated/0/DCIM/Camera/
String path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getPath()+"/Camera/";
File f = new File(path);
listOfImages = scanPhotos(f);
} else {
Toast.makeText(this, "sd not present", Toast.LENGTH_SHORT).show();
}
}
public List<File> scanPhotos(File directory) {
List<File> listOfPictures = new ArrayList<>();
//this returns null
File[] files = directory.listFiles();
for (File file : files
) {
if (file.isDirectory() && !file.isHidden()) {
listOfPictures.addAll(scanPhotos(file));
} else {
if (file.getName().endsWith(".jpg") || file.getName().endsWith(".jpeg") || file.getName().endsWith(".png")) {
listOfPictures.add(file);
}
}
}
return listOfPictures;
}
Ведение
f.canRead() - returns false
Вы проверили разрешения Runtime? – Rahul
Это решило мою проблему. Я полностью забыл об этих разрешениях Зефира. большое спасибо – hyrulelink16