Android 是否可以下载到内存?

Android 是否可以下载到内存?,android,Android,我正在使用downloadmanager.request排队setDestinationUri来 下载文件 是否可以将文件下载到内存位置 可以持久化的设备的名称 我使用的是安卓3.1 Xoom设备,它没有真正的 尽管该应用程序允许我们向/mnt写入数据,但仍在其上安装了功能性SD卡/ SD卡位置 有没有办法将下载的文件存储到内存中 TIA下载管理器不太可能做到这一点。我的假设是,DownloadManager不在您的进程中运行,而是在系统控制的另一个进程中运行。内部存储位置受权限保护,您提供的任

我正在使用
downloadmanager.request排队setDestinationUri
来 下载文件

是否可以将文件下载到内存位置 可以持久化的设备的名称

我使用的是安卓3.1 Xoom设备,它没有真正的 尽管该应用程序允许我们向/mnt写入数据,但仍在其上安装了功能性SD卡/ SD卡位置

有没有办法将下载的文件存储到内存中


TIA

下载管理器不太可能做到这一点。我的假设是,
DownloadManager
不在您的进程中运行,而是在系统控制的另一个进程中运行。内部存储位置受权限保护,您提供的任何位置都只能由您的应用程序访问

看来你有两个选择

(1) 在“外部”存储上提供文件路径,完成后,复制到内部存储,然后删除外部存储上的文件


(2) 创建一个
ContentProvider
DownloadManager
可以写入的
ContentProvider,并为其提供一个与此
ContentProvider
对应的
URI
。您实现的
ContentProvider
可以将文件写入内部存储器,因为它将在应用程序的上下文中运行。

蜂窝设备上的/sdcard不会写入内部存储器吗?这不是你想要的吗?我不认为/mnt/sdcard可以作为内存。该位置的绝对路径由Environment.getExternalStorageDirectory().getAbsolutePath()给出,很明显,它是外部的。我要说的是xoom(和其他HC设备)映射/SD卡到内部16或32GB内存中的某个点,作为预期SD卡存在的应用程序的解决方法。对于应用程序来说,它看起来像SD卡上的,但在内部,它实际上写入了内部闪存。@maxpower47。我懂了。摩托罗拉解决SD卡问题时会发生什么?即使主板上的SD卡插槽已启用,Xoom的当前安排也不会改变。如果SD卡插槽已启用,则该SD卡将映射到其他路径。我还要注意,像Nexus S这样没有SD卡的手机将/SD卡映射到内部分区。Android CDD要求在/SD卡上有可写的东西。@cyngus:你能举一个选项2的例子吗?第二种方法不起作用,作为DownloadManager.Request只接受file://scheme URI。如果使用
FileProvider
,则
DownloadManager
将崩溃,出现异常
java.lang.IllegalArgumentException:不是文件URI:content://your_file_provider_authotrity/file_path
下载管理器使用
文件://
方案访问文件和FileProvider会将URI wil scheme作为
内容://
@cyngus提供给您,如果您能确认并更新您的答案,那么它将对未来的读者有所帮助。@prostock否,我无法使它工作。我不得不采取第一种方法。