前提・実現したいこと
過去の質問:
Androidエミュレータを利用したUDP通信の実現方法について
過去の質問にて、Android9におけるUDP通信がバグで使えないことが分かりました。
バグネタ元:
2chのスレッド
どうにかしてAndroid9でUDPパケット受信を行いたいのですが、
お知恵をお貸しくださいませ。
発生している問題
AndoroidのAPIレベル28(Android9)でエミュレータ作成し、
DatagramPacketの受信プログラムを組んでも受信しません。
※APIレベル29(Android10)でエミュレータ作成すると、
正常に受信します。
該当のソースコード
Java
1 class ThreadUDPServer extends Thread { 2 @Override 3 public void run() { 4 Log.d("UDP_Test", "ThreadUDPServer run Start!!"); 5 6 try { 7 DatagramSocket sock = new DatagramSocket(50001);//50001ポートでUDP受信用ソケット構築 8 byte[] data = new byte[1024];//受信最大バッファ 9 DatagramPacket packet = new DatagramPacket(data, data.length);//受信用パケットを構築 10 sock.receive(packet);//受信 ★API:28だと、ここでパケット受信が動きません!★ 11 Log.d("UDP_Test", "UDP受信:" + new String(Arrays.copyOf(packet.getData(), packet.getLength()), "UTF-8")); 12 sock.close();//ソケットのクローズ 13 } catch (Exception ex) { 14 Log.d("UDP_Test", ex.getMessage()); 15 } 16 } 17 }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。