我正在考虑开发一个 Android 应用程序,该应用程序将作为其功能的一部分,从当前连接到 WiFi 网络的所有设备发送和接收广播消息。
虽然许多开发人员建议这样的要求需要应用程序来获取 MulticastLock,但有经验表明:
- 不能依赖成功获取 MulticastLock,因为 acquire() 方法不会返回请求操作的任何状态。
- 即使您确实获得了锁,也不能保证 WiFi 堆栈不会过滤掉未针对设备的数据包。
还有其他人说多播锁在 2.3.3 及更高版本上可靠工作,可靠性问题仅适用于运行 2.3.2 及更低版本的设备。
他们中的一些人说没有任何保证(现在或未来的设备),因为对广播和多播的支持是芯片组控制的功能,并且 OEM 拥有最终决定权。他们认为电池消耗是 OEM 允许或拒绝芯片组软件配置的主要动机。
所以,在我深入研究我的项目之前,我想知道这个问题的当前状态是什么,以及我正在尝试做的事情是否可行,即不涉及猜测工作。如果有解决办法,我愿意实施,只要我知道它会可靠地工作。请分享您的意见和经验。提前致谢。