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手机也能正常发送接收到广播报文。
小结:事出有因,多想想为啥,这样我们才有可能找到问题的真正原因。
参考网站:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
