2016-02-06 2 views
0

Мне нужно отправить файл с фотографией (может быть видео кстати), выбранный или снятый по телефону. вопросы следующие: - Android-версия может быть предварительно KitKat - Переоборудование принимает RequestBody, который строят с файл или массив байтов, когда я мог бы иметь только FileDescriptorMultipart RequestBody для выбранного снимка или снятого изображения (Filedescriptor, URI ....)

Увидев другие сообщения, это выглядит получение актива с телефона является реальным p *** в *** . Я понимаю, что вопрос широк! .... и это проблема

ответ

0

То, что я пришел с этим следующим: - для картины ФИСА InputStream на основе FileDescriptor как

FileInputStream fileInputStream = new FileInputStream(fileDescriptor); 

затем я прочитал InputStream в порядке чтобы получить ByteArray,

ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    byte[] result = null; 
    try { 
     byte[] input = new byte[fis.available()]; 
     int read; 
     while ((read = fis.read(input)) != -1) { 
      out.write(input, 0, read); 
     } 
     result = out.toByteArray(); 
     fis.close(); 
     out.close(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    return result; 

после того, как я создать Requestbody, как обычно, я передать его дооснастить специальным многочастного методом пост с помощью специального значения, как часть

... , @Nullable @Part("picture\"; filename=\"picture\" ") RequestBody picture ... 

Это было очень трудно найти, но так как дооснащения еще в бета-версии он меняет много и не хватает документации, надеюсь, что это помогает