有没有一种在android中使用DownloadManager通过局域网下载的方法?
我正在开发一个应用程序,需要在android电视上播放视频列表。首先,我通过流媒体播放视频,同时开始下载视频。当一个特定的视频已经下载并且需要播放时,我使用下载的视频文件并播放它。在使用有没有一种在android中使用DownloadManager通过局域网下载的方法?,android,android-5.0-lollipop,lan,android-download-manager,Android,Android 5.0 Lollipop,Lan,Android Download Manager,我正在开发一个应用程序,需要在android电视上播放视频列表。首先,我通过流媒体播放视频,同时开始下载视频。当一个特定的视频已经下载并且需要播放时,我使用下载的视频文件并播放它。在使用WIFI连接的设备(比如我用来测试的平板电脑)上,视频正在下载。但是我需要运行我的应用程序的电视是使用局域网连接的。这个问题有解决办法吗 目前,我就是这样开始下载的 public void startDownload(VideoAd videoAd) { String videoUrl = videoAd
WIFI
连接的设备(比如我用来测试的平板电脑)上,视频正在下载。但是我需要运行我的应用程序的电视是使用局域网连接的。这个问题有解决办法吗
目前,我就是这样开始下载的
public void startDownload(VideoAd videoAd) {
String videoUrl = videoAd.getUrl();
Uri uri = Uri.parse(videoUrl);
Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
.mkdirs();
lastDownload = dlMgr.enqueue(new DownloadManager.Request(uri)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI |
DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setTitle("Downloading video ad")
.setDescription("Downloading "+getVideoNameFromLink(videoUrl))
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, getVideoNameFromLink(videoUrl)));
videoAd.setDownloadId(lastDownload);
}
它起作用了。但问题是它在局域网连接上不起作用
这是我目前在应用程序中使用的内容
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.LOLLIPOP) {
networkArr = connMgr.getAllNetworks();
Log.d(TAG, "networkArr len: "+networkArr.length);
for(Network n : networkArr){
lblNetworks.setText(n.toString()+"\n");
}
}else{
// Use getAllNetworkInfo()
NetworkInfo[] networkInfArr = connMgr.getAllNetworkInfo();
for(NetworkInfo ni : networkInfArr){
lblNetworks.setText(ni.toString()+"\n");
}
}
我的平板电脑正在运行棒棒糖,我得到的数字是
103
。我不能在电视上尝试,因为它在另一栋楼上。一个可能的解决方案是获得您想要的网络,并通过connectivity manager将您的进程绑定到此网络。看见您可以通过()获得所需的网络,并对其进行迭代,检查网络信息是否与您想要的网络信息匹配。对于电视,“网络移动”无法工作。我建议将其删除,并尝试使用以下代码:-
lastDownload = dlMgr.enqueue(new DownloadManager.Request(uri)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI)
.setTitle("Downloading video ad")
.setDescription("Downloading "+getVideoNameFromLink(videoUrl))
.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, getVideoNameFromLink(videoUrl)));
如果此代码适用于TV,则需要应用检查(如果是TV)并相应地处理代码 嗯,我只是用了我以前发现的东西。谢谢我们的安卓电视并不是真正的安卓电视,但我有办法做检查。嗨。我尝试了你的解决方案,但我只得到一个3位数的数字。对吗?你能详细说明一下吗?你什么时候得到3位数?也许把密码寄出去?