Я занимаюсь разработкой приложения, которое должно воспроизводить список видео на телевизоре Android.Сначала я проигрываю видео, транслируя его, а также начинаю загрузку видео.Когда конкретное видео уже загружено, и оно должно быть воспроизведено, я использую этот загруженный видеофайл и воспроизводю его.На устройствах (например, планшете, который я использовал для тестирования) с подключением 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");
}
}
На моем планшете запущен Lollipop и номер, который я получаю103
Я не могу попробовать это по телевизору, потому что он находится в другом здании.