UDP发送总是以失败告终

时间:2019-03-08 12:55:43

标签: java android udp

fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            try {
                String host = "192.168.4.1";
                int port = 2390;
                byte[] message = "Som tu".getBytes();
                InetAddress address = InetAddress.getByName(host);
                DatagramPacket packet = new DatagramPacket(message, message.length, address, port);
                DatagramSocket dSocket = new DatagramSocket();
                dSocket.send(packet);
                dSocket.close();
            }
            catch(Exception e){
                speak("error");
            }
            Intent intent = new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH);
            intent.putExtra(RecognizerIntent.EXTRA_LANGUAGE_MODEL,
                    RecognizerIntent.LANGUAGE_MODEL_FREE_FORM);
            intent.putExtra(RecognizerIntent.EXTRA_MAX_RESULTS,3);
            mySpeechRecognizer.startListening(intent);
        }
    });

我正在尝试创建一个Android应用程序,该应用程序将在按下buttuon时通过udp发送文本,但始终会被捕获..有什么想法吗?我也得到错误:E / HAL:负载:id = gralloc!= hmi-> id = gralloc但我不知道如何解决它。 我忘记了任何许可吗?我只使用(RECORD_AUDIO,INTERNET)

1 个答案:

答案 0 :(得分:1)

看看您的代码,我假设您得到一个NetworkOnMainThreadException。 Android不允许在其主线程上进行网络活动以保持应用程序的响应速度。为避免此错误,请在您的onClick方法内启动一个新线程,并在那里执行网络活动