最近做个小东西,发现手机怎么也接收不到电脑发出去的广播数据包。后来上网查,不少人都有这个问题,有人说是手机的硬件bug。
后来在谷歌文档找了半天,突然发现原来是系统默认是把广播接收锁住了,因为接收广播非常耗电。
但是有时还是需要打开的,当然了,用完建议关闭。
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiManager.MulticastLock multicastLock = wifiManager.createMulticastLock("multicastLock");
multicastLock.acquire();
最后需要在配置文件中增加许可
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />