Не удается подключиться к цвету лампы Wi-Fi Yeelight - PullRequest
0 голосов
/ 09 мая 2018
I'm trying to create android app which can control Yeelight wifi color bulb. I've written simple peace of code that connect to Yeelight but I'm really not sure what exactly I'm doing wrong. 

Этот код содержит простое сообщение SSDP, которое подключается через порт 239.255.255.250:1982.

Все устройства подключены к одному и тому же Wi-Fi (лампочка и телефон) У меня роутер D-Link DIR 600M.

Исключение: получаю исключение подключения. Неважно, сколько времени я установил, но этот код не сможет подключиться через определенное время.

Извинение за грязный код.

**Here is the code**

    public void connectDevice(){
        try {

            byte[] sendData;
            byte[] receiveData = new byte[1024];
            DatagramSocket clientSocket=null;

    /* Create the search request */
            String NL = "\r\n";
            StringBuilder mSearch = new StringBuilder();
            mSearch.append("M-SEARCH * HTTP/1.1").append(NL);
            mSearch.append("HOST: 239.255.255.250:1982").append(NL);
            mSearch.append("MAN: \"ssdp:discover\"").append(NL);
            mSearch.append("ST: wifi_bulb");
            try {

    /* Send the request */
                sendData = mSearch.toString().getBytes();
                DatagramPacket sendPacket = new DatagramPacket(
                        sendData, sendData.length, InetAddress.getByName("239.255.255.250"), 1982);
                clientSocket = new DatagramSocket();
                clientSocket.setSoTimeout(50000);
                clientSocket.send(sendPacket);

    /* Receive one response */

                DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length);
                clientSocket.receive(receivePacket);

            }
            catch (Exception e) {
                e.printStackTrace();
            }

            clientSocket.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
...