2016-07-15 3 views
0

Я делаю приложение для Android (версия 4.4), и я пытаюсь одновременно выбрать несколько файлов (.doc, .pdf). Цель состоит в том, чтобы перемещаться по каталогам, выбирать некоторые запрошенные файлы и возвращать список этих файлов. Я изначально попытался таким образом, но инструкция Extra_Allow_Multiple не работает: я могу выбрать только один файл за раз.Java - Как выбрать несколько файлов в Android

Intent intent = new Intent("com.sec.android.app.myfiles.PICK_DATA"); 
intent.putExtra("CONTENT_TYPE", "*/*"); 
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
intent.addCategory(Intent.CATEGORY_DEFAULT); 
startActivityForResult(intent, PICKFILE_REQUEST_CODE); 

Так что я попытался в этом другом способе, но я не просматриваю во всех каталогах устройства, только специфических (фото/видео/аудио ...), и я не могу выбрать несколько файлов по той же причине, что и раньше.

Intent intent = new Intent(); 
intent.setType("*/*"); 
intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(intent, PICKFILE_REQUEST_CODE); 

Я пробовал также другие комбинации, но часто ошибка похожа на это появляется:

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.GET_CONTENT (has extras) } 

Как я могу выбрать несколько файлов, возможно, таким образом, подобно первому методу?

ответ

0

Вы пробовали это?

Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
intent.setType("file/*"); 
startActivityForResult(intent, PICKFILE_REQUEST_CODE); 

Я взял этот фрагмент кода из this StackOverflow вопрос.

Я не очень хорошо знаком с этой функциональностью в Android, но вы можете получить файлы Uri с onActivityResult(), если это поможет.

+0

Таким образом, startActivity открывает непосредственно начальную операцию Dropbox, и я не могу просматривать во внутренних файлах устройства. Вместо этого, с намерением. IntType ("*/*"); Я вижу только определенные папки (изображения, видео, загрузки), и я могу выбрать только один файл за раз, в то время как я ищу метод, который позволяет мне выбирать несколько вариантов: – Dieghitus

+0

О, я понимаю: DI сделал некоторые исследования по developer.android.com и обнаружил, что Intent.EXTRA_ALLOW_MULTIPLE (true) позволяет ... но, похоже, вы уже это сделали, попробовали ли вы другой файловый менеджер (например, ES file explorer)? [Ссылка на Android dev] (https://developer.android.com/guide/components/intents-common.html#Storage) Кроме того, здесь интересен SO [вопрос] (https://stackoverflow.com/questions/ 19068842/can-we-use-intent-extra-allow-multiple-for-old-versions-of-android-api-levels) –

+0

Спасибо - я пробовал в другой раз, а Extra_Allow_Multiple работает только с Action_get_content, просто нужно держать нажал файлы, чтобы разрешить множественный выбор. Я частично разрешил свою проблему, только я не могу перемещаться по папкам своего устройства: я вижу только определенные папки с файловым менеджером по умолчанию. Я пробовал с File Explorer и двумя другими программами, с которыми я могу перемещаться, как я хочу, но без множественного выбора ... – Dieghitus

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