Я использую следующий код, чтобы открыть zip-файл из любого доступного источника (локальное хранилище Google Диск, падение коробки и т.д.):Выберите файл на Android с заданным временем расширения/MIME
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
String mimetype = MimeTypeMap.getSingleton().getMimeTypeFromExtension("zip");
intent.setType(mimetype);
Intent chooser = Intent.createChooser(intent, "Select a zip file");
if (intent.resolveActivity(getPackageManager())!=null)
startActivityForResult(chooser, 1);
Это хорошо работает на моем Nexus 5 (с Android 5.0) и на моем Nexus 7 (Andorid 4.4.4). Появится стандартное диалоговое окно Android, позволяющее мне выбрать zip-файл с форматом google drive, drop box и т. Д. Файлы, не соответствующие запрошенному расширению, не могут быть выбраны. Отлично!
Но когда я проверить его на Samsung Tab с Andoroid 4.4.2 это только показывает, выбирающий диалог раздаточной файл ... нет Google Диска, нет локального хранилища, ни файлового менеджера приложений ... Пожалуйста, обратите внимание, что в mimetype
код выше равен application/zip
. Если я изменил код на intent.setType("*/*");
, теперь он отобразит все параметры, например, в Nexus 5 (google drive, dropbox, локальное хранилище и т. Д.), Однако я могу выбрать любой файл, а не только zip, и это не то, что я хочу.
У нас есть та же проблема, что и у вас с приложением для клиента. Но мы пытаемся открыть PDF-файлы вместо ZIP. Вы уже нашли решение для этого? – Florian
... нет, в конце концов я сдался ... Я использую aim.setType ("\ */\ *"); и затем я проверяю, действительно ли файл, выбранный пользователем, zip (или pdf в вашем случае). Это очень раздражает ... – lviggiani