您的位置:首页 > 移动开发 > Android开发

android中udp协议广播的实现

2015-04-27 15:11 246 查看
这是本人在实现upd局域网广播遇到的问题总结帖.(是广播不是组播)

以下几个问题可能导致无法接受到广播

1. 有些厂家的手机rom默认是关闭了接受局域网广播这个功能的,所以我们需要一个MulticastLock这个类来开启接受广播的功能;

这个MulticastLock是WifiManager的内部类,我们需要一个WifiManager实例才能获得一个MulticastLock实例.

开启广播功能的方法MulticastLock.acquire();

//在这两个方法中接受包就可以了DatagramSocket.receives();

当我们接受完包后必须关闭这个功能multicastLock.release();

这个功能涉及到wifi权限,我顺便把联网的权限贴出来

联网权限

<uses-permission android:name="android.permission.INTERNET"/>

wifi控制权限

<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />

2.这个问题是udp协议缺点产生的,udp协议在发送广播它只负责发送,并不管你是否接受成功.所以当我们在发送广播时务必多发送几个,也就是循环发送!!!本人就是掉在这个坑中爬了好久

本人就不贴代码了,如果需要代码的留言留下邮箱说明下,我有空会发过去.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: