Не удается открыть сокет при входящем звонке

Я пытаюсь отправить данные на сервер при входящем звонке через мобильные данные (4G). Я получаю одну из этих ошибок:

java.net.UnknownHostException: хост не разрешен: xyz.xy

или же

java.net.SocketTimeoutException: не удалось подключиться к /xxx.xxx.xxx.xxx (порт гггггг) через 15000 мс

Когда включен WIFI, данные отправляются во время входящего звонка.

Вот часть кода:

Socket socket = new Socket();
DataOutputStream dos;
DataInputStream dis;
try {
    socket.connect(new InetSocketAddress(SERVER_IP, SERVER_PORT), CONNECTION_TIMEOUT);
    socket.setTcpNoDelay(true);
    socket.setSoTimeout(READ_TIMEOUT);
    dos = new DataOutputStream(socket.getOutputStream());
    dis = new DataInputStream(socket.getInputStream());

    int count = text.getBytes("UTF-8").length;
    ByteBuffer data = ByteBuffer.allocate(count);
    data.put(text.getBytes("UTF-8"));

    dos.write(data.array(), 0, data.array().length);

Проблема при отправке данных через мобильный телефон (4G) при входящем звонке? Или мне не хватает каких-либо настроек?

РЕДАКТИРОВАТЬ

Я читал, если телефон поддерживает технологию SVDO или 4G LTE, модем может принимать вызов и отправлять данные. У моего телефона Xiaomi Redmi 3S есть эта технология.

1 ответ

Решение

Я нашел проблему. Проблема в операторе и технологии VoLTE. В Чехии это можно сделать только с оператором O2 см. Форум. В Samsung Galaxy S7 это работает.

Другие вопросы по тегам