トーン(BEEP音)生成のサンプルコード。
ToneGenerator toneGenerator = new ToneGenerator(AudioManager.STREAM_SYSTEM, ToneGenerator.MAX_VOLUME); toneGenerator.startTone(ToneGenerator.TONE_PROP_BEEP);
トーン(BEEP音)生成のサンプルコード。
ToneGenerator toneGenerator = new ToneGenerator(AudioManager.STREAM_SYSTEM, ToneGenerator.MAX_VOLUME); toneGenerator.startTone(ToneGenerator.TONE_PROP_BEEP);
タッチイベントに応答するには、onTouchEvent()をオーバーライドします。
引数のMotionEventには、タッチされた際の情報が格納されてきますので、
getX()、getY()で、タッチされた座標、
getEventTime()で、タッチされた時間(ms)、
getAction()で、タッチアクションを取得できます。
タッチアクションとは、タッチ動作を表した定数で、例えば、
ACTION_DOWN→ACTION_MOVE(何回か繰り返し)→ ACTION_UP
のようになります。
参考となるサンプルコードは、ApiDemos/Graphics/FingerPaintです。

Android Dev PhoneのシステムイメージがHTCから正式に公開されました。
→
http://www.htc.com/www/support/android/adp.html
以下、実際にAndroid1.0からAndroid1.1へ書き換えた際のメモです。
事前準備
上記サイトから、OS毎のfastboot、バージョン毎のSystem Image、Radio Imageをダウンロードする。
※1.0、1.1の両方ダウンロードしておくことをお勧めします
Update the Device Radio Firmware
Flash the System Image to the Device
ファームウェアのバージョンは、Setting - About Phone - Firmware versionで確認できます。
ハマりどころは、fastbootで< waiting for device >と表示された場合の対処方法ですが、それ以外は問題なくできました。
※参考にした記事
エミュレーター/デバイス(実機)のシリアル番号を取得するには、
adb get-serialno
を実行します。
実行結果は、エミュレーターの場合、
emulator-5554
などとなります。
内部的には、クライアントからエミュレーター/デバイス(実機)のadb serverプロセスに、TCP5037ポートで接続し、
0012host:track-devices
を送信すると、サーバーからの応答として、4バイトのASCII文字列である
OKAY
の戻り値に続けて、
複数のエミュレーター/デバイス(実機)の情報を格納した文字列
0015emulator-5554\tdevice\n
が返却されます。
この文字列は、\n区切りで1つのエミュレーター/デバイス(実機)を表現しており、
さらに、その中の文字列は、\t区切りで、前半をシリアル番号、後半がstateという意味になっています。
※クライアント/サーバーともに、送受信の際の先頭4バイト(上記の場合、0012や0015)は、それ以降のデータの長さを16進数で表現した文字列です
adb shell でエミュレータ(emulator)や実機(device)へ接続後、
ファイルシステムを変更しようとしても「Read-only file system」と表示されて変更ができない場合、
mount -o rw,remount /dev/block/mtdblock3 /system
と入力すると、変更できるようになります(上記は、/system での例)。
参考にしたサイトは、こちら(http://blogger.splhack.org/2008/12/android-dev-phone-1-2.html)。
※sakamoto先生のブログ、大変役に立つ情報ばかりです
Wi-fi接続時のIP Address(アドレス)を取得するコードが必要となり、書いてみました。
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String strIPAddess =
((ipAddress >> 0) & 0xFF) + "." +
((ipAddress >> 8) & 0xFF) + "." +
((ipAddress >> 16) & 0xFF) + "." +
((ipAddress >> 24) & 0xFF);
Log.v("IP Address", strIPAddess);
実行すると、(いつものごとく)例外が発生して終了してしまいましたが、
最近では、すぐにパーミッション不足だろうということがわかるようになりました。
ということで、AndroidManifest.xmlにandroid.permission.ACCESS_WIFI_STATEを追加することで、無事解決できました。
また、IPアドレスは、int型で取得できますが、リトルエンディアンでした。
Software Design 2009年3月号の第2特集に、Androidの記事がありました。
第4章の お天気アプリは、私も作成していたので、うーん、先を越されてしまった。。。という感じです。
また、(Ny)ARToolKitは、年明けにFlash関連のブログ(trick7 - さくーしゃさんがまたスゴイものを作った)を
読んで気になっていたので、タイムリーな記事でした。
Adobe AIRだと、PaperVisionを勉強していたのでだいだいできるのですが、
Androidだと、Open GL ESということで一から勉強し直しです。
記事を参考に試してみようと思います。
※全部で48ページ5章あります。
※「Software Design (ソフトウエア デザイン) 2009年 03月号
」。