Android中有多种MIME类型

Jam*_*mes 67 android android-intent mime-types

有没有办法使用intent.setType()和提供多种广泛类型(如图像视频)?

我正在使用ACTION_GET_CONTENT.它似乎只使用逗号分隔类型.

Fre*_*red 102

在Android 4.4中使用Storage Access Framework时,您可以使用它EXTRA_MIME_TYPES来传递多个mime类型.

Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("*/*");
String[] mimetypes = {"image/*", "video/*"};
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimetypes);
startActivityForResult(intent, REQUEST_CODE_OPEN);
Run Code Online (Sandbox Code Playgroud)

  • 这在Android 7.0中不起作用.仅显示视频. (6认同)
  • 请注意,`EXTRA_MIME_TYPES` 不会替换`setType`。使用这种方法您仍然需要 `setType`。 (2认同)

vch*_*ter 20

实际上,支持多种mime类型.你有没试过吗???

例如:intent.setType("image/*,video/*") 将显示照片和视频......

对我来说它有效.它也适合你...

  • 此解决方案正在运行......但仅适用于允许两种mime类型的应用程序.默认的一个"图库"没有. (4认同)

hac*_*bod 4

抱歉,目前不支持此功能。您有两个选择:

(1) 使用 MIME 类型*/*并接受用户可能会选择一些您无法处理的事情(并为此提供适当的恢复路径);或者

(2) 实现您自己的活动选择器,直接调用包管理器以获取可以处理意图的两种 MIME 类型的活动,合并这些列表,并将它们显示给用户。

此外,setType()根本不适用于逗号分隔的类型。它必须是一种且唯一的一种 MIME 类型。

  • 实际上,支持多种 mime 类型。你有试过吗???例如:image/*,video/* 将显示照片和视频... (3认同)