将文件从webservice下载到Android设备上的特定位置

时间:2013-02-21 10:49:47

标签: android

IDE Eclipse 使用模拟器

我正在从网络服务下载文件。我将文件保存到SD卡没有问题。然后可以通过文件管理器访问它。

但是,如果没有可用的SD卡,我想将文件保存到内部存储上的“下载”。我似乎无法将文件下载到“下载”,因为它是从浏览器下载的。

但我可以设法将文件保存在内部存储的应用程序目录中。例如data / data / com.example.appname / files /.

问题是这只能通过应用程序访问。

我需要用户可以在下载后查看/打开这些文件。

这可能吗?或者用户是否必须拥有SDCARD?

2 个答案:

答案 0 :(得分:1)

这还取决于设备+提供商,有些是锁定的,因此人们根本无法访问其内部存储。

因此,如果您想要迎合没有SD卡的人,请保存在应用程序目录中。如果他们没有root访问权限,则无法访问。你无能为力。

这是非常正常的行为。

最佳做法是警告用户他们的选择:节省SD卡或内部存储。如果你想要,请提及后果。

答案 1 :(得分:0)

查找下载文件夹使用:

http://developer.android.com/reference/android/os/Environment.html#getExternalStoragePublicDirectory(java.lang.String)

File downloadFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);

但就像其他人提到的那样,如果不存在SD卡,那么您无能为力,只需向用户发出警告。

在我发布的链接上有很好的例子,说明如何检查目录的存在性和可用性。