月別アーカイブ: 2012年2月

Android4.0でDatagramSocketを使うときの罠

頭に来たので書く。
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) {
以下省略

これって仕様? バグ?

Android SDK最新版入れるときの罠とか

何回かやってるはずなのに毎回引っかかる罠。
事の発端はNexus SにAndroid 4.0.3を適用したこと。
手持ちにAndroid4の端末がなかったので、API Level14までしかない。
さて16入れるとなると…
とりあえずEclipseからSDK Managerで更新。
するとNexus SがUSBで認識しなくなった。
ここでEclipse本体側のパッケージも更新しないといけないのを忘れてたのがいかん。
で、更新したんだけど再起動しても認識しやしない。
いや、認識しないというのは厳密には違って、最初認識するんだけどDDMSから端末をクリックすると切れる。
どういうことだろう、と思いながらもうひとつあったケーブルにつないでみたら難なく認識。
なんだよそれー。
1時間はかかったかなぁ。
そのご、アプリの動作検証したけどエラーも出ないのに音声がでない。困るね…。

Xperia mini ST15i(香港版)買ってB-mobileSIMで運用開始

タイトルのとおり。
いい加減自分用Android端末ほしかったし、軽くテザリングできると便利な状況も多いし。

とりあえず端末だけ買って、1週間ほどWi-Fiのみで運用してみたけど、やっぱりSIMほしい。
で、結局買ったのがB-mobileのU300。
スピードがそこそこあること、なによりコストパフォーマンスがいい。月換算で2150円くらい?
ヨドバシで14300円の10%還元で71マイル(これはANA-Edyのマイルだけど)。
横浜ヨドバシではウィルコムコーナーでひっそり売ってた。買わせる気ねえだろ。

買って即開通の儀式。フリーダイヤルにかけるので電話代の心配は要らない。SIMに紐づいてる電話番号打つだけ。
5分ほどで使えるようになるんだけど、ネットワークが使えないという警告マークが消えない。これは仕方ないかな。
それよりも、もっと微妙なのは位置情報がろくすっぽ取れない。FourSquareとか使おうとするとアプリが落ちる。調べると無理みたいなことが書いてあるのでこりゃ困ったな、と思って帰宅すると程なくして本体更新のお知らせが。
とりあえず、素直にPCつないでソフトインストール。Macに対応してないのが痛すぎる。外で使いづらくて仕方ない。
更新かけたら、あっさり位置情報が取れるようになったのでとりあえず当面の心配はなくなった感じ。
さすがに画面が小さいので、俺のでかい親指だとフリック微妙かなあと心配だったけど、意外とまともに通るので安心してるところ。でも慣れると誤爆増えそうな。