当我尝试使用打开一个.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
的行为是相同的。
为什么类型设置不能按预期工作?如何运作?
答案 0 :(得分:1)
Android不支持json
作为MIME类型。您可以签出MimeUtils的源代码。
MimeTypeMap.getSingleton().getMimeTypeFromExtension("json");
返回
null
;
您可以使用"application/octet-stream"
代替"application/json"
。尽管会过滤掉图像,视频,音乐和文本文件,但它将显示“ * .json文件以及其他文件。