Как фильтровать файлы JSON с помощью Intent.ACTION_OPEN_DOCUMENT? - PullRequest
0 голосов
/ 23 сентября 2019

Когда я пытаюсь открыть файл .json с помощью

startActivityForResult(Intent(Intent.ACTION_OPEN_DOCUMENT).apply {
    addCategory(Intent.CATEGORY_OPENABLE)
    type = "application/json"
}, 0)

, программа выбора отображает файлы всех типов вместо просто .json файлов.И что стоит, все файлы выделены серым цветом, я не могу выбрать ни одного, , даже не моих .json файлов.

Однако, когда я изменяю application/json на */*,файлы не отображаются серым цветом, и я могу их открыть.

С ACTION_GET_CONTENT вместо ACTION_OPEN_DOCUMENT поведение такое же.

Почему настройка типа не работает должным образом?Как заставить это работать?

1 Ответ

1 голос
/ 25 сентября 2019

Android не поддерживает json как тип MIME.Вы можете проверить исходные коды MimeUtils .

MimeTypeMap.getSingleton().getMimeTypeFromExtension("json");

возвращает null;

Вы можете использовать "application/octet-stream" вместо "application/json".Он покажет "* .json файлы среди других файлов, хотя и отфильтрует изображения, видео, музыку и текстовые файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...