Intent ACTION_OPEN_DOCUMENT:浏览多个MIME类型

问题描述 投票:0回答:1

我有此意图让用户选择图像:

 fun launchChooseFileIntent(callerFragment: BaseFragment, REQUEST_CODE: Int) {
    val intent = Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
        addCategory(Intent.CATEGORY_OPENABLE)
        type = "image/*,"
    }

    startActivityForResult(intent, REQUEST_CODE)
}

现在我需要用户可以选择图像和pdf文档。我尝试更改type字符串,如

type = "image/*,application/pdf"

或类似

type = "image/*|application/pdf"

但是它不起作用。

我也尝试过向意图添加更多内容,例如

putExtra(Intent.EXTRA_MIME_TYPES, arrayOf("image/*", "application/pdf"))

但是应用程序崩溃。

我该如何解决?

android android-intent mime-types
1个回答
0
投票

您的问题的答案是here

这是我的示例代码,已在api 28中进行了测试。

            Intent intent = new Intent();
            intent.setAction(Intent.ACTION_OPEN_DOCUMENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
            String[] mimeTypes = {"application/pdf", "text/csv", "text/plain"};
            intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
            intent.setType("*/*");
            intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);

            startActivityForResult(Intent.createChooser(intent, dialogTitle), requestCode);
© www.soinside.com 2019 - 2024. All rights reserved.