如何使用Intent.ACTION_OPEN_DOCUMENT过滤JSON文件?

时间:2019-09-23 03:32:43

标签: android json android-intent

当我尝试使用打开一个.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 个答案:

答案 0 :(得分:1)

Android不支持json作为MIME类型。您可以签出MimeUtils的源代码。

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

返回null;

您可以使用"application/octet-stream"代替"application/json" 。尽管会过滤掉图像,视频,音乐和文本文件,但它将显示“ * .json文件以及其他文件。