博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android杂谈--HTC等手机接收不到UDP广播报文的解决方案
阅读量:6238 次
发布时间:2019-06-22

本文共 659 字,大约阅读时间需要 2 分钟。

最近遇到个问题,在android手机上发送UDP报文的时候,HTC等机型(测试用HTC new one)接收不到广播报文,而其他的samsung, huawei, xiaomi, nexus等等均没有问题。

所以猜测应该是HTC优化了系统,把它给关掉了。由于手机开启UDP广播功能不仅耗电,而且占用系统资源。可能有些手机厂家默认把这个功能给关掉了,

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

解决方案:

1.在oncreate()方法里面实例化一个WifiManager.MulticastLock 对象lock

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

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

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

例如:

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

另外,需要加入权限

这样HTC new one即可发送和接收广播报文了

 

参考:

 

转载地址:http://fobia.baihongyu.com/

你可能感兴趣的文章
Linux中Samba服务器的搭建
查看>>
iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态
查看>>
nfs服务的配置
查看>>
微信小程序支付调试
查看>>
ASP.NET中GridView数据导出到Excel
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
swoole项目思维转换 -- 前篇
查看>>
我的友情链接
查看>>
Redis之----Redis的数据类型和操作
查看>>
只读字段与标签字段
查看>>
ubuntu修改时区和时间的方法
查看>>
maven实战 读书笔记三#高级程序员进阶之路#
查看>>
硬盘安装windows 7
查看>>
编译器编译原理--详解
查看>>
第五章 择偶
查看>>
用Fiddler模拟低速网络环境
查看>>
《跟阿铭学Linux》第8章 文档的压缩与打包:课后习题与答案
查看>>
Python练习2
查看>>
新安装的python2.7无法加载error while loading shared libraries: libpython2.7.so.1.0
查看>>