如何在Gallery中显示下载的视频?

时间:2014-05-26 18:00:12

标签: android download

我正在使用此代码从我的服务器下载视频。但下载完成后,视频不会显示在设备库中。

String dst = "file:///mnt/sdcard/Bazu2.mp4";
Uri src_uri = Uri.parse("http://tiktakdl.tk/fvideo/bazu/Bazu2.mp4");
Uri dst_uri = Uri.parse(dst);

DownloadManager.Request req = new DownloadManager.Request(src_uri);
req.setDestinationUri(dst_uri);
DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
dm.enqueue(req);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File(dst))));

我使用了ACTION_MEDIA_SCANNER_SCAN_FILE意图,但没有任何事情发生。我想首先我应该检查文件是否完全下载然后使用该意图,但我不知道如何。

1 个答案:

答案 0 :(得分:2)

Enqueing下载意味着它刚刚启动,所以在99,99%的情况下你的广播过早发送,所以基本上你不应该重新扫描,除非下载完成,因为没有意义这样做。要获得下载完成后收听由下载管理器发送的广播ACTION_DOWNLOAD_COMPLETEdocs)的通知,然后您应广播ACTION_MEDIA_SCANNER_SCAN_FILE

或者,这是更干净的解决方案(但它的API11 +),您应该先在请求之前使用allowScanningByMediaScanner()docs):

request.allowScanningByMediaScanner()

告诉系统在下载完成后为您执行此操作。