android的组播真是够麻烦的

1. 打开权限

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

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

2. 打开组播锁,默认时,移动设备为了省电是关闭的

WifiManager wifi = (WifiManager)getSystemService( Context.WIFI_SERVICE );
if(wifi != null)
{
MulticastLock mcLock = wifi.createMulticastLock("mylock");
mcLock
.acquire();
...

3. 模拟器玩wifi还是很痛苦的,莫名其妙的错误和失败

4. 真机玩wifi组播也很要命,根据stackoverflow,android2.3.7以下的系统只能接收自己发送的组播消息,无法接收其他设备,包括移动设备,PC等发送的组播消息

以下是原文http://stackoverflow.com/questions/3623143/multicast-on-android-2-2

I've been doing a bit of research into this, and I believe it is a problem with Android in general, and fixed in or around Android 2.3.7.

It's a bit too anecdotal, but here's what I tested:

  • HTC Desire, 2.2, stock: fail

  • HTC Desire, 2.3.7, CyanogenMod: success

  • Motorola Milestone, 2.1-update1: fail

  • HTC Desire S, 2.3.3: fail

  • Acer Iconia A501, 3.2.1: success

  • Samsung something, 2.3.3: fail

  • HTC Legend, 2.2 I think: fail

When I say 'fail', in fact they were all able to send multicast messages to the 'success' devices, but never receive anything back except their own messages - as jldupont describes.

手头只有一台老旧的索爱X8,android2.1, 接收组播异常

一台小米1s,android4.0,可以正常接收PC的组播

更多相关文章

  1. Android(安卓)输入系统(二)EventHub
  2. Android各个版本API的差异
  3. Android(安卓)广播大全 Intent Action 事件
  4. KVM is required to run this AVD. /dev/kvm device: permission
  5. Android下载文件常见错误解决方法
  6. Android(安卓)Toast多次弹出问题
  7. eclipse安装Android模拟器
  8. android之init进程-uevent
  9. Android锁屏和激活设备管理器

随机推荐

  1. 【拿来主义】Android反编译工具
  2. Google手机操作系统Android应用开发入门
  3. Android(安卓)(6.0) 系统启动流程梳理
  4. Android(安卓)数据库简单操作
  5. Android卡片式列表布局
  6. 2018-03-08(Android四大启动模式)
  7. Android用户界面 UI组件--TextView及其子
  8. 理解 Android(安卓)消息机制
  9. Android(安卓)的消息队列模型
  10. TextView 属性详解