大家好,

我正在使用udp多播进行项目 . 我有一台服务器通过以太网线发送组播udp数据包 . 我花了几周时间阅读有关Android上多播的所有帖子,我仍然无法在我的华硕Transformer Tablet 4.1上收到任何udp数据包 .

由于某些原因,我不能把我的代码放在这里,我会尽量仔细解释 .

我有一个简单的MainActivity显示一些东西 . 几乎所有东西都是 Oncreate 方法,我调用名为 UDPreceiver 的方法的行也是如此 . 此方法在名为 UDPreceiverClass 的类中定义 .

在 UDPreceiver 中,有接收组播udp的经典代码:Multicastsocket,joingroup ...我已经在我的计算机上的java程序中测试了这段代码并且它正在运行 .

在这个非常Oncreate方法的上面,我已经获得了wifi锁:

WifiManager wifi = (WifiManager)getSystemService( Context.WIFI_SERVICE );

if(wifi != null){

WifiManager.MulticastLock lock = wifi.createMulticastLock("Log_Tag");

lock.acquire();

}

但我不确定我是否必须使用相同的以太网连接(我没有找到任何其他类似的锁) .

我拥有清单中的所有权限:

甚至更多(我添加了所有与网络链接的权限) .

我很快就能在Wifi上试一试,但我也不是很自信 .

如果我以单播方式发送,我的代码正在使用我的平板电脑,而不是在多播中!

你对此有什么建议吗?它是放置Wifi锁的正确位置吗?它甚至适用于以太网吗?我知道有些设备不允许组播,是华硕变压器的情况吗?

我希望你能帮助我 . 我知道这很复杂而没有看到代码但是不可能,抱歉 .

非常感谢你 !!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐