Android DownloadManager 如何在完成下载前将文件标记为临时文件

标签 android android-download-manager

我有一个 DownloadManager 来下载视频,以便我可以使用播放器播放。但是当我开始下载的时候,它生成了未完成的.mp4文件,所以当我在下载完成之前尝试播放时,会显示错误,是否可以在下载完成之前更改其扩展名?

DownloadManager manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);    
Uri uri = Uri.parse(url);    
DownloadManager.Request request = new DownloadManager.Request(uri);    request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI|DownloadManager.Request.NETWORK_MOBILE).setDescription("caching video").setDestinationInExternalPublicDir("/Android/data/", id + ".mp4");
long id = manager.enqueue(request);

最佳答案

你可以用一些不同的方式解决你的问题
而不是在完成下载之前更改其扩展名,您需要像这样使用更改后的扩展名开始下载:

request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI|DownloadManager.Request.NETWORK_MOBILE).setDescription("caching video").setDestinationInExternalPublicDir("/Android/data/", id + ".mp4.tmp");

下载完成后,将文件重命名为 "/Android/data/", id + ".mp4"

关于Android DownloadManager 如何在完成下载前将文件标记为临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40542478/

相关文章:

android - 如何在低于 21 的 Android API 中模拟按钮提升(阴影)?

android - 使用 viewmodel 中 LiveData 的结果从 firebase 获取数据

android - 如何访问 Android 下载管理器的百分比?

android - DownloadManager直接进入外部存储目录

Android 依次下载多个文件并在ListView中显示进度

android - 从 AutoCompleteTextView 下拉列表中删除阴影

Android:使用 POST 以 JSON 格式发送字节数组

android - Cordova Android 黑色启动画面

java - DownloadManager 未在状态栏中显示图标

android - DownloadManager 不添加文件扩展名