在Android上下载文件

时间:2009-12-23 23:21:11

标签: android download

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

我希望看到的是在某个地方的HTTP服务器上托管的文件,因此用户只需在Android手机上启动浏览器,浏览相关页面,然后将文件下载到手机即可。然后,我希望我的应用程序能够打开下载的文件。

我不确定这是否可行,但肯定会有兴趣听到任何了解此类事情的人。不幸的是,我似乎很难自己提出答案 - 就像Android SDK的其他部分一样,相关文档严重不足。

4 个答案:

答案 0 :(得分:4)

当用户访问您希望支持的文件时,您应该能够使用IntentFilters向Android注册,以表明您的应用程序能够处理特定的MIME类型。

请参阅documentation here

答案 1 :(得分:3)

从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执行您想要的操作。我不确定这是否足够接近您对用户下载文件然后从您的应用程序访问文件的描述,但让我们在您的应用程序中获取文件似乎更直接。

答案 2 :(得分:2)

顺便说一句,我偶然发现了一个合理的解决方案,比使用意图等等更容易...

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

感谢您的帮助!

答案 3 :(得分:0)

如果你想在应用程序中整合下载,那么@ jball的答案就是你需要的,如果你希望通过浏览器启动该过程,那么@ Scott的答案就是你所需要的。 根据您的描述,您似乎也希望用户共享使用应用创建的文档,这需要您的应用能够将应用上传到网络服务器。像WebDAV这样的东西是理想的,可以使用org.apache.http库自己实现,也可以使用其中一个开源实现。