【问题标题】:Intent ACTION_OPEN_DOCUMENT: browse multiple MIME typeIntent ACTION_OPEN_DOCUMENT:浏览多个 MIME 类型
【发布时间】:2020-09-07 22:18:28
【问题描述】:

我的意图是让用户选择图像:

 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】:

你的问题的答案是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);

【讨论】:

    猜你喜欢
    • 2020-05-15
    • 2017-04-20
    • 2010-11-12
    • 2013-01-27
    • 2016-05-09
    • 2012-03-09
    • 2011-01-11
    • 2015-10-22
    相关资源
    最近更新 更多