1

IDE Eclipse 使用模拟器

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

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

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

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

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

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

4

2 回答 2

1

这也取决于设备+提供商,有些被锁定,所以人们根本无法访问他们的内部存储。

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

这是很正常的行为。

最佳做法是警告用户他们的选择:保存在 SD 卡或内部存储上。如果你愿意,还可以提及后果。

于 2013-02-21T10:54:44.460 回答
0

找到下载文件夹使用:

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

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

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

在我发布的链接上有关于如何检查目录是否存在以及它的可用性的很好的例子。

于 2013-02-21T11:29:12.323 回答