Android手机接收不到UDP报文

问题:

同一套程序在中兴手机和华为手机上可以接收到UDP广播报文,但在HTC手机上却接收不到?


问题原因:(仅猜测而已,未经过验证)

手机开启UDP广播功能不仅耗电,而且占用系统资源。可能有些手机厂家默认把这个功能给关掉了,

你若想要用手机来发送接收UDP报文,得先申请,才能使用这个功能。

具体如何申请和释放:

1、可先在oncreate()方法里面实例化一个WifiManager.MulticastLock 对象lock;具体如下:

WifiManager manager = (WifiManager) this  .getSystemService(Context.WIFI_SERVICE);  
WifiManager.MulticastLock lock= manager.createMulticastLock("test wifi"); 

2、在调用广播发送、接收报文之前先调用lock.acquire()方法;

3、用完之后及时调用lock.release()释放资源,否决多次调用lock.acquire()方法,程序可能会崩,详情请见

Caused by: java.lang.UnsupportedOperationException: Exceeded maximum number of wifi locks

注;记得在配置文件里面添加如下权限:

 


经过这样处理后,HTC手机也能正常发送接收到广播报文。

小结:事出有因,多想想为啥,这样我们才有可能找到问题的真正原因。

参考网站:



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部