Отправка и получение многоадресных пакетов по Wi-Fi с активным подключением к данным 4G - PullRequest
0 голосов
/ 06 декабря 2018

Я знаю, что новейшие выпуски Android позволяют автоматически восстанавливать соединение для передачи данных через 4G, когда сеть Wi-Fi не обеспечивает подключение к Интернету.

Я хотел бы использовать это поведение в следующем сценарии:

  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.Как я могу преодолеть эту проблему?

В основном мне нужно запустить Wi-Fi камеру (у нее есть собственная сеть Wi-Fi, где она передает пакеты SSDP) при подключении к Интернету.

...