无法为 jpg、png 和 jpeg 类型的图像文件设置 fileIntent

Cannot set a fileIntent for image files of type jpg, png and jpeg

我正在使用以下代码:

Intent fileIntent = new Intent(Intent.ACTION_GET_CONTENT);
fileIntent.setType("image/jpg|image/png|image/jpeg"); 
startActivityForResult(fileIntent, REQUEST_FILE);

我相信代码应该允许我 select 任何 jpg、png 或 jpeg 文件,但它不允许。

另一方面改变fileIntent.setType("image/jpg|image/png|image/jpeg");至 fileIntent.setType("image/*");允许 select 文件。但它也允许 select 另一个我不想要的图像文件。

fileIntent.setType("image/jpg|image/png|image/jpeg")中需要更正的地方;所以它允许选择这些类型的文件而不是其他类型的文件?

您只能使用 setType() 指定单个 mimetype,而不是使用带有 mimetypes 数组的键 Intent.EXTRA_MIME_TYPES 应用额外的:

fileIntent.putExtra(Intent.EXTRA_MIME_TYPES, Arrays.asList("image/png", "image/jpeg").toArray());

我发现即使提供了 mimetypes 列表,您可能仍然需要将 intent.fileType("*/*"); 应用于意图,无论如何,mimetypes 列表将优先。