我正在使用 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);
}`
您可以添加多种 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"};
我知道已经很晚了,但我是为那些仍在寻找相同内容的人而写的。
要在 Android Kotlin 中选择 .docx 文件,您可以使用系统的文件选择器,通过操作 Intent.ACTION_OPEN_DOCUMENT 创建 Intent 并指定适当的 MIME 类型
(application/vnd.openxmlformats-officedocument.wordprocessingml.document)
以仅过滤 Word 文档
fun pickDocxFile() {
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
addCategory(Intent.CATEGORY_OPENABLE)
type = "application/vnd.openxmlformatsofficedocument.wordprocessingml.document"
}
openDocumentResultLauncher.launch(intent)
}
然后,使用
startActivityForResult
启动选取器并在 onActivityResult
方法中检索所选文件的 URI。
private val openDocumentResultLauncher =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
val uri = it?.data // URI of the selected .docx file
// Process the selected file using the URI
}
}