頭に来たので書く。
Android4.0にしたNexus SでUDPソケットを使ったプログラムが動かない。
どうやら、DatagramPacketのcapacityが前回取得時の値に固定されている?
で、悩みに悩んで打った対策がこれ。
「DatagramSocket.SetData()をreceive()の前に毎回行う」
try {
m_socket.setSoTimeout(15000);
// setDataを読み込みの度に必ず行わないとAndroid4.0で受信サイズが固定されてしまう!
packet.setData(m_buffer); // byte[] m_buffer = new byte[1024];
m_socket.receive(packet);
} catch (SocketTimeoutException e) {
以下省略
これって仕様? バグ?