Android DownloadManager 如何在完成下载前将文件标记为临时文件
Android DownloadManager how to mark file as temporary before finishing downloading
我有一个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);
您可以用稍微不同的方式解决您的问题
您需要使用更改后的扩展名开始下载,而不是 change its extension before finish downloading
:
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI|DownloadManager.Request.NETWORK_MOBILE).setDescription("caching video").setDestinationInExternalPublicDir("/Android/data/", id + ".mp4.tmp");
下载完成后,将文件重命名为 "/Android/data/", id + ".mp4"
我有一个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);
您可以用稍微不同的方式解决您的问题
您需要使用更改后的扩展名开始下载,而不是 change its extension before finish downloading
:
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI|DownloadManager.Request.NETWORK_MOBILE).setDescription("caching video").setDestinationInExternalPublicDir("/Android/data/", id + ".mp4.tmp");
下载完成后,将文件重命名为 "/Android/data/", id + ".mp4"