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

标签 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 的行为是相同的。

为什么字体设置没有按预期工作?如何让它发挥作用?

最佳答案

Android 不支持将 json 作为 MIME 类型。您可以查看MimeUtils的源代码.

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

returns null;

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

关于android - 如何使用 Intent.ACTION_OPEN_DOCUMENT 过滤 JSON 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58055318/

相关文章:

json - 在 Angular 2 中加载配置 JSON 文件

android - 广播接收器对 Activity 的 Intent ?

java - 我应该如何在 Android 中给图像圆角?

android - isGooglePlayServicesAvailable 在 Android 5 中导致 TransactionTooLargeException

android - 如何根据设备分辨率在react-native中设置通知小图标

java - 将字符“替换为无文本然后将值转换为 Float 时出现空指针异常

java - 使用 JPA+Google App Engine 在 CLASSPATH 中找到 : No META-INF/persistence. xml 文件

java - 基于 Enum 的 Jackson 多态反序列化

android - 在android中打开链接时显示浏览器列表

java - android发送 Intent 额外