Android杂谈--HTC等手机接收不到UDP广播报文的解决方案
最近遇到个问题,在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
另外,需要加入权限
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
这样HTC new one即可发送和接收广播报文了
参考:
http://developer.android.com/reference/android/net/wifi/WifiManager.MulticastLock.html
http://blog.csdn.net/lvron/article/details/6606755
Android杂谈--HTC等手机接收不到UDP广播报文的解决方案的更多相关文章
- A手机等的网络udp广播,收到广播以后回复udp消息
B手机:向A手机发送一条消息,等待A回复 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: ...
- HTC T329手机如何删除系统自带的软件?HTC一键解锁、获取ROOT权限、豌豆荚删除系统软件
手头一部HTC T329T手机,机上默认装载的软件实在太多了,居然占用了4页.用360手机卫士并不能删除系统软件(不能获取ROOT权限).查网上查询,总结要删除系统软件步骤如下(本人不刷机,只是想删除 ...
- Android学习笔记_63_手机安全卫士知识点归纳(3)分享 程序锁 服务 进程管理 widget
1.分享: Intent shareIntent = new Intent(); shareIntent.setAction(Intent.ACTION_SEND); shareIntent.setT ...
- Android项目实战_手机安全卫士软件管家
###1.应用程序信息的flags 1. int flags = packageInfo.applicationInfo.flags2. 0000 0000 0000 0000 0000 0000 0 ...
- Android项目实战_手机安全卫士手机防盗界面
#安全卫士手机防盗# ###1.Activity的任务栈 1.类似一个木桶,每层只能放一个木块,我们放入木块和取出木块的时候只能从最上面开始操作 ###2.Android中的坐标系 (右击“标记”,选择设备名称,点击“Ctrl+ ...
- 【转】android 安卓APP获取手机设备信息和手机号码的代码示例
http://blog.csdn.net/changemyself/article/details/7421476 下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓 ...
- android 安卓APP获取手机设备信息和手机号码的代码示例
下面我从安卓开发的角度,简单写一下如何获取手机设备信息和手机号码 准备条件:一部安卓手机.手机SIM卡确保插入手机里.eclipse ADT和android-sdk开发环境 第一步:新建一个andro ...
随机推荐
- Win7 远程 Ubuntu 桌面 mate desktop,并实现中文输入法
一. 安装mate desktop: $sudo apt-add-repository ppa:ubuntu-mate-dev/ppa $sudo apt-add-repository ppa:ubu ...
- fancybox iframe 刷新父页面(项目经验)
<script type="text/javascript"> $(document).ready(function() { $(".fancybox&quo ...
- Eclipse程序员要掌握的常用快捷键
Ctrl+K 光标放在一个变量上(注意,是变量,如果你的光标放在了字符串上,如http://keleyi.com则没有任何作用的),按下Ctrl+K光标会定位到下一个相同的变量 Shift+Ctrl+ ...
- Webpack使用教程一
过去数年间,web开发已经从包含少量JavaScript代码的应用发展到到拥有复杂JavaScript代码和代码之间依赖关系树的应用.手动维护这些复杂的代码依赖关系是很麻烦的.Webpack能分析项目 ...
- 使用NHibernate(10) -- 补充(inverse && cascade)
1,inverse属性的作用: 只有集合标记(set/map/list/array/bag)才有invers属性: 以set为例,set的inverse属性决定是否把对set的改动反应到数据库中去,i ...
- Dynamic CRM 2013学习笔记(二十五)JS调用web service 实现多条记录复制(克隆)功能
前面介绍过如何克隆一条当前的记录: Dynamic CRM 2013学习笔记(十四)复制/克隆记录 , 主要是通过界面上加一个字段,单击form上的clone 按钮时,改变这个字段的值以触发插件来实现 ...
- SSH Secure Shell Client的windows客户端样式设置
SSH Secure Shell Client下载:http://pan.baidu.com/s/1dF2lDdf 其他工具(putty-0.67)下载:http://pan.baidu.com/s/ ...
- (转)SpringSecurity扩展User类,获取Session
1.在session中取得spring security的登录用户名如下 ${session.SPRING_SECURITY_CONTEXT.authentication.principal.user ...
- [Microsoft Test Manager]CodeUI初探
开发环境: Widnows8 Microsoft Visual Studio Ultimate 2012 1. 新建一个 Windows Forms Application Figue1 Cr ...
- [Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍
前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时 ...