代码之家  ›  专栏  ›  技术社区  ›  Mac Umer

在Android上下载文件

  •  6
  • Mac Umer  · 技术社区  · 16 年前

    我正在编写一个Android应用程序,我想让我的用户能够共享它创建的文档文件。

    理想情况下,我希望看到的是在某个地方的HTTP服务器上托管的文件,这样用户就可以在Android手机上启动浏览器,浏览相关页面,然后将文件下载到他们的手机上。然后我希望我的应用程序能够打开下载的文件。

    我不确定这是否可行,但肯定有兴趣听取任何了解此类事情的人的意见。不幸的是,我自己似乎很难找到答案——就像其他的Android SDK一样,相关文档严重缺乏。

    4 回复  |  直到 16 年前
        1
  •  4
  •   Scott Markwell    16 年前

    当用户访问您希望支持的文件时,您应该能够使用intentfilters在android上注册,以表明您的应用程序能够处理特定的mime-type。

    documentation here .

        2
  •  3
  •   jball    16 年前

    从Web服务器获取文件非常容易。 在您的包中-

    import java.net.URL;
    import java.net.URLConnection;
    import java.io.InputStream;
    

    在你的代码里-

    URL requestURL = new URL(urlStringForFileYouWantToOpen);
    URLConnection connection = requestURL.openConnection();
    InputStream response = connection.getInputStream();
    

    那就做你想做的 InputStream . 我不确定这是否足够接近你对用户的描述,下载一个文件,然后从你的应用程序访问它,但我似乎更直接地让他们在你的应用程序获取文件。

        3
  •  2
  •   Mac Umer    16 年前

    顺便说一句,我偶然发现了一个合理的解决方案,它比故意捣乱等简单得多。

    webview小部件允许您设置一个downloadListener对象,每当webview被定向到它本机不理解的类型的文件时,该对象就会得到通知。因此,当用户下载应用程序的文档文件时,可以通过在应用程序中创建一个WebView并注册一个DownloadListener来监听来实现我所追求的功能。

    谢谢你的帮助!

        4
  •  0
  •   Nic Strong    16 年前

    如果您想在应用程序中集成下载,那么@jball的答案就是您需要的。如果您希望通过浏览器启动该过程,那么@scott的答案就是您需要的。 从您的描述来看,您似乎还希望用户共享与应用程序创建的文档,这将要求您的应用程序能够将应用程序上载到Web服务器。类似webdav的东西很适合这样做,要么使用org.apache.http库实现自己,要么使用其中一个开源实现。

    推荐文章