gpt4 book ai didi

android - 无法通过存储访问框架加载具有 .gpx 扩展名的文件

转载 作者:搜寻专家 更新时间:2023-11-01 08:32:28 27 4
gpt4 key购买 nike

Wikipedia says GPX 文件的 MIME 类型是 application/gpx+xml。所以我使用了以下代码:

startActivityForResult(
new Intent(Intent.ACTION_OPEN_DOCUMENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("application/gpx"),
READ_GPX_FILE_REQUEST_CODE
);

也试过这个:

startActivityForResult(
new Intent(Intent.ACTION_OPEN_DOCUMENT)
.addCategory(Intent.CATEGORY_OPENABLE)
.setType("application/gpx+xml"),
READ_GPX_FILE_REQUEST_CODE
);

作为最后的手段,我尝试使用 Intent#setTypeAndNormalize(String) 方法。运气不好 - 当文件选择器对话框启动时,所有带有 .gpx 扩展名的文件都是灰色的,即它们是不可选择的。我的代码中是否存在问题,或者 SAF 的 Intent 有一些它可以使用的预配置 mime 类型集,而 application/gpx+xml 不属于该集?

最佳答案

由文档提供者决定其提供的文档的 MIME 类型。对于某些文档提供者,他们可能知道来自上游源的文档 MIME 类型(例如,提供文档提供者的电子邮件客户端可能会从电子邮件的 MIME header 中获取附件的 MIME 类型)。对于其他一切,他们将倾向于依赖 MimeTypeMap,而后者又依赖于名为 MimeUtils 的内部类。

MimeUtils 对 GPX 没有任何帮助,at least through Android 7.0 .

因此,您需要采纳 greenapps 的建议,使用 */*,并准备好处理解析错误。

FWIW,我提交了 a feature request将 GPX 添加到 MimeUtils

关于android - 无法通过存储访问框架加载具有 .gpx 扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39558325/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com