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 應用程序,該應用程序將在按下按鈕時通過 udp 發送文本,但它總是最終被捕獲..任何想法為什么?我也得到 Error: E/HAL: load: id=gralloc != hmi->id=gralloc 但我不知道如何解決它。有沒有我忘記的許可?我只使用(RECORD_AUDIO,INTERNET)
1 回答

拉丁的傳說
TA貢獻1789條經驗 獲得超8個贊
查看您的代碼,我假設您正在獲得一個NetworkOnMainThreadException
. Android 不允許在其主線程上進行網絡活動,以保持應用程序響應。為避免此錯誤,請在您的onClick
方法中啟動一個新線程并在那里執行網絡活動
添加回答
舉報
0/150
提交
取消