Android Studio - 提示打开任何可用应用程序的下载文件

时间:2017-05-06 16:11:57

标签: android-studio android-external-storage

我有一个使用Firebase从服务器接收网址的应用程序。收到URL后,该URL上的文件将自动保存在本地存储中(它们是gpx文件)。

但在此之后,我希望我的应用程序提示用户使用他们在手机上安装的任何导航应用程序打开下载的文件。类似于你自己去文件管理器时,点击一个文件,然后系统会显示所有可以打开该文件的应用程序,并让你选择(或者直接用你的默认设置打开它,如果你有的话)。

我无法找到任何相关内容,包含“android studio”和“open file”的搜索主要显示有关如何自行管理源文件的教程,因此它们根本没用。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

String mimeType = myMime.getMimeTypeFromExtension(fileExt(getFile()).substring(1));
newIntent.setDataAndType(Uri.fromFile(getFile()),mimeType);

private String fileExt(String url) {
    if (url.indexOf("?") > -1) {
        url = url.substring(0, url.indexOf("?"));
    }
    if (url.lastIndexOf(".") == -1) {
        return null;
    } else {
        String ext = url.substring(url.lastIndexOf(".") + 1);
        if (ext.indexOf("%") > -1) {
            ext = ext.substring(0, ext.indexOf("%"));
        }
        if (ext.indexOf("/") > -1) {
            ext = ext.substring(0, ext.indexOf("/"));
        }
        return ext.toLowerCase();
    }
}

这允许您根据文件扩展名获取类型。然后只需startActivity传递newIntent。这应该达到你想要的目的。