我正在尝试开发显示视频的应用,您可以下载它 我正在使用Download Manager类,但它没有用,也没有给我任何错误:(
这是我的下载管理器代码:
public void downloadFileFromUrl(String url, String fileName) {
String filePath=Environment.getExternalStorageDirectory() + File.separator + "BlueNet";
File folder = new File(filePath);
if (!folder.exists()) {
folder.mkdirs();
}
try {
Uri downloadUri = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(downloadUri);
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI);
request.allowScanningByMediaScanner();
request.setDestinationInExternalPublicDir("/BlueNet/",fileName);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setVisibleInDownloadsUi(true);
DownloadManager downloadManager = (DownloadManager)getApplicationContext().getSystemService(DOWNLOAD_SERVICE);
long id= downloadManager.enqueue(request);
Toast.makeText(this, fileName, Toast.LENGTH_LONG).show();
Toast.makeText(this, filePath, Toast.LENGTH_LONG).show();
}
catch (Exception ex){
Toast.makeText(this, ex.toString(), Toast.LENGTH_LONG).show();
}
}
这就是我的称呼方式
downloadFileFromUrl(path, fileName);
其中:
路径:“192.168.1.5:8080/BlueNet_NMC/blue_elephant.mp4”
filename :“blue_elephant.mp4”
我已经将此权限授予了清单
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
所以请任何帮助
答案 0 :(得分:2)
正如我在评论中所说,DownloadManager
仅处理以http://
或https://
开头的请求,您可以看到in the docs。
我不知道究竟是什么问题,因为我缺乏有关您服务器的信息,但我认为这是一个常见问题,因此您应避免使用IP地址而不提供该方案。
答案 1 :(得分:1)
我在使用 DownloadManger
类下载带有 HTTP URL 的文件时遇到问题;但后来我做了以下事情,问题得到了解决。
代替此代码:
String url = "http://masteranime.ir/music/best/Dragon Ball GT Dan Dan Kokoro Hikareteku.mp3";
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
使用此代码:
String url = "http://masteranime.ir/music/best/Dragon Ball GT Dan Dan Kokoro Hikareteku.mp3";
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url).replaceAll(" ","%20"));
答案 2 :(得分:0)
request.setDestinationInExternalPublicDir("/BlueNet/",fileName);
只需删除此行或以其他方式创建目录即可。
答案 3 :(得分:0)
request.setDestinationInExternalPublicDir("/BlueNet/", fileName);
你必须在这里提到目录作为第一个参数。 /BlueNet/
不是目录。