UDPを用いる場合は、DatagramPacket となっている。
String sendStr = "TEST";
byte []bufa = sendStr.getBytes();
InetSocketAddress remoteAddress
= new InetSocketAddress(getBroadcastAddress(this), UDPPORT);
udpSocket = new DatagramSocket();
udpSocket.setBroadcast(true); //しなくていいはずだけど
sendPacket= new DatagramPacket(buf,buf.length, remoteAddress);
udpSocket.send(sendPacket);
これいわゆるお手本どおりだと思う。
全部tryで囲んで
} catch (SocketException e) { TellToast("SocketExceptionだぜ");
} catch (IOException e) { TellToast("IOExceptionだぜ");
} catch (SecurityException e) { TellToast("SecurityExceptionだぜ");
} catch (Exception e) { TellToast("Exceptionだぜ");
これを Android2で行うと正常に終了する。
だが、 Android4で行うと Exception をキャッチしてしまう。
どうしても udpSocket.send(sendPacket)ができない。
(ちなみに受信は2でも4でもばっちりできる)
なにかセットが足りないのか?
色々やってみたけど解決しない。
もともと
android:targetSdkVersion="17" />
にしていた。
なのでターゲットをAPI10 Android2.3.3 にしてみた。
すると・・・・・・・・・
Android4でもばっちり・・・・・・・・・
なんなんこれ・・・ORZ
このアプリに関しては、
API17がなんかええ感じに昔のも動かしてくれる
と聞いたので試すのも目的だったが、もうなし決定。
テスト完了後、
新しいプロジェクトできっちりAPI指定した上で作ろう。
ちなみに レシーブ(受信)の場合も
packet.setData(buf); // byte[] buf = new byte[256];
Socket.receive(packet);
Android4の場合はこれをしないと罠らしい。
http://www.zakugiri.com/MT/archives/2012/02/android40datagr.html
String sendStr = "TEST";
byte []bufa = sendStr.getBytes();
InetSocketAddress remoteAddress
= new InetSocketAddress(getBroadcastAddress(this), UDPPORT);
udpSocket = new DatagramSocket();
udpSocket.setBroadcast(true); //しなくていいはずだけど
sendPacket= new DatagramPacket(buf,buf.length, remoteAddress);
udpSocket.send(sendPacket);
これいわゆるお手本どおりだと思う。
全部tryで囲んで
} catch (SocketException e) { TellToast("SocketExceptionだぜ");
} catch (IOException e) { TellToast("IOExceptionだぜ");
} catch (SecurityException e) { TellToast("SecurityExceptionだぜ");
} catch (Exception e) { TellToast("Exceptionだぜ");
これを Android2で行うと正常に終了する。
だが、 Android4で行うと Exception をキャッチしてしまう。
どうしても udpSocket.send(sendPacket)ができない。
(ちなみに受信は2でも4でもばっちりできる)
なにかセットが足りないのか?
色々やってみたけど解決しない。
もともと
android:targetSdkVersion="17" />
にしていた。
なのでターゲットをAPI10 Android2.3.3 にしてみた。
すると・・・・・・・・・
Android4でもばっちり・・・・・・・・・
なんなんこれ・・・ORZ
このアプリに関しては、
API17がなんかええ感じに昔のも動かしてくれる
と聞いたので試すのも目的だったが、もうなし決定。
テスト完了後、
新しいプロジェクトできっちりAPI指定した上で作ろう。
ちなみに レシーブ(受信)の場合も
packet.setData(buf); // byte[] buf = new byte[256];
Socket.receive(packet);
Android4の場合はこれをしないと罠らしい。
http://www.zakugiri.com/MT/archives/2012/02/android40datagr.html
※コメント投稿者のブログIDはブログ作成者のみに通知されます