Запуск приложения Android Sender / Receiver для Android на ChromeOS - PullRequest
0 голосов
/ 04 июня 2019

Я работаю над приложением, которое использует функцию UDP Sender / Receiver для широковещательной рассылки IP-адреса текущего компьютера на адрес 255.255.255.255. В ответ UDP-сервер выдает ответ с другого устройства (в моем случае Платежный терминал) по IP-адресу. На устройствах на базе Android, таких как планшет или телефон, он работает как положено. Проблема начинается с компьютера ChromeOS. Я передаю информацию, но на второй машине с запущенным WireShark результата нет. Я знаю со страницы https://developer.android.com/topic/arc#check_for_networking_requirements Android-приложения, работающие на ChromeOS, находятся за брандмауэром и не имеют прямого доступа к WiFi-устройству. Единственное решение - использовать Android Network Service Discovery, но я не знаю, как использовать его в этом сценарии. Ниже я вставляю код отправителя UDP, который работает везде, кроме ChromeOS

fun sendDatagramPacketSender(
        bytePacketToSend: ByteArray,
        targetIP: String,
        targetPort: Int
): Completable {
    return fromAction {
        try {
            val datagramPacket =
                    DatagramPacket(bytePacketToSend, bytePacketToSend.size, InetAddress.getByName(targetIP), targetPort)

            mDatagramSocket.send(datagramPacket)
        } catch (e: Exception) {
            Log.e(TAG, e.message)
        }
    }
}

Есть ли у вас какое-либо другое решение для моей проблемы или пример использования NSD в моем случае?

...