如何在内部存储中下载和保存媒体文件 android java
how to download and save media files in internal storage android java
我想从网上下载一些音频文件。我想使用 downloadmanager 下载这个文件,但我不知道如何将这些文件保存到 android 中的特定内部存储位置。 InternalStorage/folder/filename.mp3
(这样我就可以轻松访问它们)。
manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse("URL");
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
long reference = manager.enqueue(request);
下载有用。但是我们无法指定这些文件的位置。
那么如何指定这些文件保存在内部存储的特定位置。还有,如何 access
和 delete
这些文件。
请不要问这个问题,我看了很多文章都糊涂了。
如果还有其他更好的选择或任何建议请评论
检查 request.setDestination 函数 here
将文件存储在外部应用程序特定目录中 [示例:“external/Android/data/your_app_name/filePath_you_set_in_function”],使用如下所示:
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setDescription("Selected Video is being downloaded");
request.allowScanningByMediaScanner();
request.setTitle("Downloading Video");
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
//Set the local destination for the downloaded file to a path within the application's external files directory
request.setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DOWNLOADS, fileName); //To Store file in External Public Directory use "setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)"
DownloadManager manager = (DownloadManager)
mContext.getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
如果您想将它下载到另一个地方,您需要在下载完成后通过使用 IO 流移动它。 DownloadManager 完成下载后,您可以使用广播接收器执行此任务。您可以使用 FileProvider 通过 Android 版本 10 或更高版本的其他应用程序打开文件。
只需添加此行即可保存文件:
request.setDestinationInExternalFilesDir(context,Environment.DIRECTORY_ALARM,mp3name);
to delete this file
File file = new
File(context.getExternalFilesDir(Environment.DIRECTORY_ALARMS),"Fav_Ringtone.mp3");
file.delete();
to read this file
File file= newFile(context.getExternalFilesDir(Environment.DIRECTORY_ALARMS),"Fav_Ringtone.mp3");
我想从网上下载一些音频文件。我想使用 downloadmanager 下载这个文件,但我不知道如何将这些文件保存到 android 中的特定内部存储位置。 InternalStorage/folder/filename.mp3
(这样我就可以轻松访问它们)。
manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse("URL");
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
long reference = manager.enqueue(request);
下载有用。但是我们无法指定这些文件的位置。
那么如何指定这些文件保存在内部存储的特定位置。还有,如何 access
和 delete
这些文件。
请不要问这个问题,我看了很多文章都糊涂了。
如果还有其他更好的选择或任何建议请评论
检查 request.setDestination 函数 here 将文件存储在外部应用程序特定目录中 [示例:“external/Android/data/your_app_name/filePath_you_set_in_function”],使用如下所示:
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setDescription("Selected Video is being downloaded");
request.allowScanningByMediaScanner();
request.setTitle("Downloading Video");
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
//Set the local destination for the downloaded file to a path within the application's external files directory
request.setDestinationInExternalFilesDir(context, Environment.DIRECTORY_DOWNLOADS, fileName); //To Store file in External Public Directory use "setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, fileName)"
DownloadManager manager = (DownloadManager)
mContext.getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
如果您想将它下载到另一个地方,您需要在下载完成后通过使用 IO 流移动它。 DownloadManager 完成下载后,您可以使用广播接收器执行此任务。您可以使用 FileProvider 通过 Android 版本 10 或更高版本的其他应用程序打开文件。
只需添加此行即可保存文件:
request.setDestinationInExternalFilesDir(context,Environment.DIRECTORY_ALARM,mp3name);
to delete this file
File file = new
File(context.getExternalFilesDir(Environment.DIRECTORY_ALARMS),"Fav_Ringtone.mp3");
file.delete();
to read this file
File file= newFile(context.getExternalFilesDir(Environment.DIRECTORY_ALARMS),"Fav_Ringtone.mp3");