Я знаю, что новейшие версии Android позволяют автоматически отключать подключение для передачи данных через 4G, когда сеть Wi-Fi не обеспечивает подключение к Интернету.
Я хотел бы использовать это поведение в следующем сценарии:
Смартфон Android 8 подключен к Wi-Fi-соединению, которое не подключено к Интернету.
Смартфон подключен к Интернету с помощью подключения для передачи данных 4G.
Я хочу, чтобы мое приложение отправляло и получало многоадресные пакеты по сети Wi-Fi. Я пробовал следующее:
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. Как я могу преодолеть эту проблему?
В основном мне нужно активировать камеру Wi-Fi (у нее есть собственная сеть Wi-Fi, в которой она транслирует пакеты SSDP) при подключении к Интернету.