下载管理器可以将文件保存在Android的内部存储中吗?

Mar*_*yam 6 android android-download-manager

我在某处读到,Download Manager在 android 中无法保存文件,internal storage因为Download Manager它不在我的应用程序进程中运行,而是在系统控制的另一个进程中运行。Internal storage位置受到权限保护,您提供的任何位置都只能由我的应用程序访问。

但是当我使用此代码时,它将我的文件保存在内部存储中:

request.setDestinationInExternalFilesDir(ShowMovieActivity.this, Environment.DIRECTORY_DOWNLOADS,"Movie"+ID+".mp4");
Run Code Online (Sandbox Code Playgroud)

我很困惑,有人可以帮助我吗?

fre*_*yle 5

内部存储是指应用程序的内部存储,而不是设备的内部存储。应用程序的内部存储只能由应用程序本身访问。这就是为什么下载管理器无法将文件直接保存到内部存储的原因。

安卓文档

有一个解决方法。您可以像以前一样将文件下载到外部存储,然后将其复制到广播接收器中应用程序的内部目录。

希望能帮助到你


小智 2

正如其名称所示,DownloadManager 是 Android 的外部管理器。您无法使用下载管理器将文件保存在内部存储中,因为该目录仅供您的应用程序使用。您需要一个内容提供程序将您的文件保存在临时目录中,然后将其保存在您的内部存储中。

希望还不算太晚:)