Я пытаюсь создать приложение auto-backup
, в котором все фотографии, сделанные из Camera
, будут загружены в Cloudinary. Однако я не могу заставить работать мой код. Что я делаю не так?Получить рулон камеры в Android Studio
class UploadPhotos implements Runnable {
@Override
public void run() {
File storageDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
File[] listOfFiles = storageDir.listFiles();
if (listOfFiles != null) {
System.out.println("code does not get this far");
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
System.out.println("File " + listOfFiles[i].getName());
try {
cloudinary.uploader().upload(listOfFiles[i], ObjectUtils.emptyMap());
System.out.print(listOfFiles[i] + " should have uploaded");
} catch (IOException e) {
e.printStackTrace();
}
} else if (listOfFiles[i].isDirectory()) {
System.out.println("Directory " + listOfFiles[i].getName());
}
}
}
}
}
storageDir
путь выходит как /storage/0804-0A1C/DCIM
внутри Android Studio emulator
но listOfFiles является недействительным (несмотря на прихватив несколько фотографий с камеры).
вероятен потому, что ваша файловая система не hvae этого пути. –
Во-первых, это не рекомендуемый базовый каталог на внешнем хранилище для приложений для камер. Это будет 'DIRECTORY_DCIM'. Во-вторых, нет необходимости, чтобы любое приложение камеры хранило фотографии в любом конкретном месте, не говоря уже о том, к которому у вас есть доступ. Есть тысячи моделей устройств Android. Эти корабли с сотнями различных предустановленных приложений для камеры, и есть множество других приложений для камер, доступных через каналы распространения, такие как Play Store. Все они могут делать все, что захотят. – CommonsWare
@CommonsWare Спасибо, я исправил его в DCIM и отредактировал сообщение. Однако это все равно приводит к тому, что listOfFiles имеет значение null. Наверняка должен быть способ найти местоположение сохранения для приложения Camera по умолчанию на устройстве? –