Как выбрать только файлы doc, docx через намерение?

Я использую Intent для открытия файлового менеджера, мне нужно знать, как отображать только файлы .doc, .docx на выбор пользователей. Как поставить setType в намерение? `Следующая функция используется для выбора файла из файлового менеджера.

    private void showFileChooser() {
    Intent intent = new Intent();
    //sets the select file to all types of files
    intent.setType("application/*");

    //allows to select data and return it
    intent.setAction(Intent.ACTION_GET_CONTENT);
    //starts new activity to select file and return data
    startActivityForResult(Intent.createChooser(intent, "Choose File to Upload.."), PICK_FILE_REQUEST);
}`

person Manoj Reddy    schedule 29.11.2016    source источник
comment
это то, что вы ищете stackoverflow.com/a/17949893/6689101   -  person zombie    schedule 29.11.2016
comment
есть идеи для iOS?   -  person saket kumar    schedule 07.12.2020


Ответы (1)


Вы можете добавить несколько типов mime следующим образом:

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
String[] mimetypes = {"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/msword"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
startActivityForResult(intent, REQUEST_CODE_OPEN);

Следующие типы mime соответствуют файлам .docx и .doc

String[] mimetypes = {"application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/msword"};
person Vladyslav Matviienko    schedule 29.11.2016
comment
Этот набор команд не работает для файлов Excel. Появится сообщение: Ни одно приложение не может выполнить это действие. Я использовал эту строку команды для файлов Excel: String[] mimetypes = {"application/vnd.ms-excel" , "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}; - person Aliton Oliveira; 07.02.2019
comment
@AlitonOliveira, это очевидно хотя бы потому, что вопрос был о форматах doc, docx. - person Vladyslav Matviienko; 07.02.2019