我知道最新的Android版本可以在wifi网络不提供Internet连接时自动回退4G上的数据连接。
我想在以下情况下利用此行为:
Android 8智能手机已连接至未连接互联网的WiFi连接
智能手机使用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数据包)。