在启用4G数据连接的情况下通过wifi发送和接收组播数据包

时间:2018-12-06 18:07:43

标签: android udp android-wifi multicast 4g

我知道最新的Android版本可以在wifi网络不提供Internet连接时自动回退4G上的数据连接。

我想在以下情况下利用此行为:

  1. Android 8智能手机已连接至未连接互联网的WiFi连接

  2. 智能手机使用4G数据连接连接到互联网

我希望我的应用通过WiFi网络发送和接收多播数据包。我尝试了以下方法:

    MulticastSocket clientSocket = new MulticastSocket(1900);
    clientSocket.setInterface(getFirstWiFiAddress()); // here I set the InetAddress of the Wifi card
    clientSocket.joinGroup(InetAddress.getByName("239.255.255.250"));
    clientSocket.send(sendPacket);
    byte[] receiveData = new byte[1024];
    DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
    clientSocket.receive(receivePacket); // <--- Timeout Error (Only happens if 4G is enabled)

我不明白为什么仅在启用4G时才会发生此错误。我该如何克服这个问题?

基本上,我需要在连接到Internet时触发一个wifi摄像头(它有自己的wifi网络,在其中广播SSDP数据包)。

0 个答案:

没有答案