Простой сборщик каталога Android - Как?

Я только что начал кодирование в Android Studio и чувствую себя потрясающе..!!

Как написать код для "Directory Picker". то есть, когда нажата кнопка, просто экран диалога/действия, который может отображать список каталогов.

Кроме того, необходимо сохранить все файлы в этом каталоге в переменную Array. (После нажатия кнопки ОК).

PS: Я искал здесь и нашел какой-то классный "Выбор файла", но я искал Directory Chooser..!

Спасибо заранее.

Ответ 1

Попробуйте использовать Intent.ACTION_OPEN_DOCUMENT_TREE

Intent i = new Intent(Intent.ACTION_OPEN_DOCUMENT_TREE);
i.addCategory(Intent.CATEGORY_DEFAULT);
startActivityForResult(Intent.createChooser(i, "Choose directory"), 9999);

И получить результат Uri from onActivityResult data.getData()

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    switch(requestCode) {
        case 9999:
            Log.i("Test", "Result URI " + data.getData());
            break;
    }
}

Ответ 3

Есть библиотека с открытым исходным кодом, которая делает выбор каталога и открывает/сохраняет действия файла также. Его можно найти на GitHub по адресу https://github.com/BoardiesITSolutions/FileDirectoryPicker.

Работает на Android API уровня 17 и выше

Отказ от ответственности: я написал это

Ответ 4

Используйте код ниже, чтобы выбрать каталог

        Intent result = new Intent();
        result.putExtra("chosenDir", path);
        setResult(RESULT_OK, result);

И чтобы получить выбранный путь переопределить onActivityResult:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == PICK_DIRECTORY && resultCode == RESULT_OK) {
        Bundle extras = data.getExtras();
        String path = (String) extras.get("chosenDir");

    }
}