Android 目录显示未正确列出文件类型

问题描述

我有尝试打开 GPX 文件代码

public void performFileSearch(String type) {
    Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
    intent.addCategory(Intent.CATEGORY_OPENABLE);
    intent.setType("application/*");
    String[] mimeTypes = new String[]{type.equals("KMZ")?"application/vnd.google-earth.kmz":"application/gpx+xml"};
    intent.putExtra(Intent.EXTRA_MIME_TYPES,mimeTypes);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivityForResult(Intent.createChooser(intent,"Choose file"),DIR_ACCESS_REQUEST_CODE);
    } else {
        Log.d("****File","Unable to resolve Intent.ACTION_OPEN_DOCUMENT");
    }
}

它适用于在设备本身上下载的文件。但是,如果从我的 Windows 桌面复制 GPX 文件,该文件在 Android 列表中会显示为灰色,且文件类型不正确(请参见下面的屏幕截图)。

即使使用从同一服务器下载的相同文件(例如所示列表中的“ElmFarm”),如果在浏览器上从 Chrome 下载,它也能正确显示。如果从 Windows 上的 Chrome 或 iPhone 上的 Safari 下载,然后复制到 Android 手机(使用 Windows 文件资源管理器,或通过电子邮件),它显示为类型“bin”(或“csv”)并且无法加载到我的应用程序。如果我在 Android Studio 中使用“设备文件资源管理器”,这些文件内容是相同的。

这里出了什么问题?看起来 Mime 类型嵌入在文件中的某处,但它们在哪里以及为什么会发生变化?

app screenshot

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)