鉴于此前博主发表过dlna开发的相关文章并在github上传了相关工程
github主页-->https://github.com/geniusgithub
亦有不少网友也下载使用了,其中不乏网友反馈说设备找不到或是搜索不稳定云云。。
这里可能原因有很多,下面就博主亲身经历简单阐述下几种可能的原因以及如何排查问题
1.路由环境问题(这种情况较少)
检测手段:下载bubbleupnp(一个很稳定的第三方客户端)
http://www.wandoujia.com/apps/com.bubblesoft.android.bubbleupnp
找两个手机安装下并接入路由器,如果搜索正常则排除此项
否则就是路由器问题,最简单的解决方法就是重启路由器
应该就可以了,如果始终不行就要检查下配置看看是不是设置了防火墙什么的(upnp组播禁用)
2.手机问题
很多手机平板类的移动设备上android系统默认是不打开组播锁的(应用接受组播消息会很耗电),所以需要额外在软件代码里额外加上打开关闭的操作
1)打开权限
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
2.)打开组播锁
WifiManager wifiManager=(WifiManager)context.getSystemService(Context.WIFI_SERVICE);
MulticastLock multicastLock=wifiManager.createMulticastLock("MediaRender");
if (multicastLock != null){
multicastLock.acquire();
}
3)关闭组播锁
在退出软件的时候记得关闭
if (mMulticastLock != null){
mMulticastLock.release();
mMulticastLock = null;
}
很多不稳定的原因都是因此造成的,在有些设备上甚至会影响到udp单播的接收
对于dmr,dms如果无法接收组播消息则意味着无法响应客户端的searh消息
对于dmp