2015-11-26 3 views
0

Я пытаюсь создать приложение 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 является недействительным (несмотря на прихватив несколько фотографий с камеры).

+1

вероятен потому, что ваша файловая система не hvae этого пути. –

+0

Во-первых, это не рекомендуемый базовый каталог на внешнем хранилище для приложений для камер. Это будет 'DIRECTORY_DCIM'. Во-вторых, нет необходимости, чтобы любое приложение камеры хранило фотографии в любом конкретном месте, не говоря уже о том, к которому у вас есть доступ. Есть тысячи моделей устройств Android. Эти корабли с сотнями различных предустановленных приложений для камеры, и есть множество других приложений для камер, доступных через каналы распространения, такие как Play Store. Все они могут делать все, что захотят. – CommonsWare

+0

@CommonsWare Спасибо, я исправил его в DCIM и отредактировал сообщение. Однако это все равно приводит к тому, что listOfFiles имеет значение null. Наверняка должен быть способ найти местоположение сохранения для приложения Camera по умолчанию на устройстве? –

ответ

0

Используя Android Device Monitor, я обнаружил, что место хранения изображений камеры в моей студии Android «/ storage/0804-0A1C/DCIM/Camera».

Однако, я не могу прочитать из этого каталога, несмотря на рекурсивные проверки (из-за разрешений?). Чтобы избежать поднятия темы, я отправил новый вопрос, связанный ниже:

Camera storage perms in Android Studio

Смежные вопросы