Невозможно установить fileIntent для файлов изображений типа jpg, png и jpeg - PullRequest
0 голосов
/ 22 марта 2020

Я использую следующий код:

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

Я считаю, что код должен позволить мне выбрать любой файл jpg, png или jpeg, но это не так.

Вкл другой рукой изменив fileIntent.setType ("image / jpg | image / png | image / jpeg"); to fileIntent.setType ("image / *"); позволяет выбрать файл. Но он также позволяет выбирать другие файлы изображений, которые я не хочу.

Что необходимо исправить в fileIntent.setType ("image / jpg | image / png | image / jpeg"); так что позволяет выбирать файлы тех типов, а не других?

1 Ответ

2 голосов
/ 22 марта 2020

Вы можете указать только один тип MIME с помощью setType(), вместо этого применить дополнительный с ключом Intent.EXTRA_MIME_TYPES с массивом типов MIME:

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

Я обнаружил, что даже при предоставлении списка mimetypes, которые вам все равно может понадобиться применить intent.fileType("*/*"); к цели независимо от того, однако, список mimetypes будет иметь преимущество.

...