Android. Выбор нескольких файлов для отправки на сервер

Необходимо реализовать выбор для последующей отправки нескольких файлов на удалённый сервер. Непосредственно отправка файла на сервер уже есть (с использованием библиотеки Okhttp), сейчас нужно реализовать сам выбор файлов пользователем. Требования:

  1. Количество файлов - до 5.
  2. Расширение файлов допустимо разное (jpeg, png, zip, pdf, видеоформаты).
  3. Возможно потребуется ограничение по размеру файлов.
  4. Реализовать возможность удаления отдельных файлов из выбранных, добавления новых файлов к выбранным, но не более 5 в сумме.

Подскажите, где почитать про реализацию всех перечисленных задач, посмотреть примеры. Может есть какие-то библиотеки, чтобы упростить этот процесс.


Ответы (1 шт):

Автор решения: Barmaley

Возвращает Intent выбора файлов из хранилища. Флаг local выбор только из локального хранилища, флаг multiple - выбирать 1 или несколько файлов.

@TargetApi(21)
public static Intent createOpenDocumentTreeIntent(String mimeType, boolean local, boolean multiple) {
        final Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
        intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, multiple);
        intent.putExtra(Intent.EXTRA_LOCAL_ONLY, local);
        // The MIME data type filter
        if(mimeType==null)
           mimeType="*/*";
        intent.setType(mimeType);
        // Only return URIs that can be opened with ContentResolver
        intent.addCategory(Intent.CATEGORY_OPENABLE);
        return intent;
    }

При запуске возвращенного Intent будет вызван стандартный диалог "зашитый" в Android

P.S. Надеюсь, как "запускать" Intent и как получить результаты его работы вам рассказывать не надо... Но если что это несложно - обращайтесь

→ Ссылка