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

Posted

技术标签:

【中文标题】Android Studio - 提示使用任何可用的应用程序打开下载的文件【英文标题】:Android Studio - prompt to open a downloaded file with any application available 【发布时间】:2017-10-04 23:30:57 【问题描述】:

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

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

我无法找到任何关于此的内容,包含“android studio”和“打开文件”的搜索主要显示有关如何管理源文件本身的教程,因此它们根本没有帮助。

【问题讨论】:

可能是***.com/questions/6265298/…这可以帮助你。 【参考方案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。这应该可以实现您的目标。

【讨论】:

以上是关于Android Studio - 提示使用任何可用的应用程序打开下载的文件的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 3.3,Advanced Profiling 对所选进程不可用

android studio 怎么设置方法注释提示

Android Studio如何设置代码自动提示

Android Studio - SDK 管理器

android studio怎么用greendao

Android 开发环境 Android Studio