対処方法は、どちらかを終了するだけ。
2009年3月アーカイブ
対処方法は、どちらかを終了するだけ。
※ここでのタスク切り替え画面とは、(すべてではないですが)Windows/LinuxのAlt + Tabキー、Mac OSXのCmd + Tabキーのようなイメージ
センサーマネージャーのサンプルコードです。
public class SensorSample extends Activity implements SensorListener {
private SensorManager mSensorManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
}
@Override
protected void onResume() {
super.onResume();
mSensorManager.registerListener(this,
SensorManager.SENSOR_ORIENTATION,
SensorManager.SENSOR_DELAY_FASTEST);
}
@Override
protected void onStop() {
mSensorManager.unregisterListener(this);
super.onStop();
}
@Override
public void onSensorChanged(int arg0, float[] arg1) {
switch (arg0) {
case SensorManager.SENSOR_ORIENTATION: // 1
// arg1[0]
// arg1[1]
// arg1[2]
break;
}
}
}
SensorManagerのインスタンスを取得するには、ActivityクラスのgetSystemService()を呼び出します。
センサーイベントをリスニングするには、同インスタンスに対し、registerListener()を呼び出します。
このとき、
第1引数には、SensorListnerを実装したクラスのインスタンス、
第2引数には、リスニングしたいセンサーの種類(をビットフィールドで指定)、
第3引数には、リスニングする頻度、
を指定します。
すると、SensorListnerを実装したクラスのインスタンスのonSensorChanged()が呼び出されますので、
引数として渡された、arg1[]を参照することで、センサーの値にアクセスできます。
参考となるサンプルコードは、ApiDemos\src\com\example\android\apis\os\Sensors.javaです。
※2009/04/07追記:public void onAccuracyChanged(int sensor, int accuracy) {} も必要です。
※2009/04/30追記:unregisterListener()を呼び出すのは、OnStop()よりも、onPause()の方が正しい?かも
※2009/04/30追記:更新された内容を含む新しい記事「[Android] Redesigned Sensor Manager APIs(Android1.5) | The type SensorListener is deprecated - adakoda」があります
トーン(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です。
こちらの公式サイト(http://www.android.com/media/goodies.html)からダウンロードできます。
※今まで勝手に「Android君」とか呼んでいたのですが、正しくは「Droid」だったんですね
壁紙
Android Developer Badge
Eclipse(+ADT)のDDMSパースペクティブ(perspective)Devicesタブで、Screen Captueボタンを押し、
表示されたDevice Screen Capture画面で、Saveボタンを押すと、pngファイルで保存することができます。

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
- デバイスにSDカードが挿入されていることを確認する
- デバイスを通常どおり起動する
- デバイスとPCをUSBで接続する
- コマンドラインから「adb devices」を実行し、デバイスと接続できていることを確認する
※「List of devices attached」の出力に続けて、デバイスのシリアル番号が表示されればOK - コマンドラインから「adb push ota-radio-1_22_14_11.zip /sdcard/update.zip」を実行し、1~2分待つ
※ota~zipは、必要なバージョンに応じて適宜読み替えてください、ここでの例は、Android1.1に書き換える場合の例
※しばらく待つのは、コピーしたバイト数が表示されていても、バックグランドでコピーが実行されていて、完了していない場合があるため - (家のマークの)HOMEキーを押したままリブートし、いつものAndroid君のあとに、
(びっくりマーク)!アイコンが表示されるまで(押したまま)待つ
※リブートは、「adb shell」「su」「reboot」、もしくは、電源長押し後、電源を切って、入れ直す - キーボードを出して、ALT + l キーを押し、Android system recovery utilityを起動させる
※ここでの l キーは、エルキーです、アイキーでも、数字の1キーでもないです - ALT + s キーを押し、(先の5でコピーしておいた)update.zipの書き込みを実行させる
- 書き込みのプログレスバーが消えたら、
(家のマークの)HOMEキー + (戻るマークの)BACKキーを押し、
radio imageの書き込みを実行させると、矢印のイメージのあとに、自動的に再起動され、
さらに、別のイメージが表示された後、通常どおり起動されます
Flash the System Image to the Device
- (戻るマークの)BACKキーを押しながら電源を入れる
※3体のAndroid君がスケートボードに乗っているイメージに、FASTBOOTが表示されればOK
※黄色いラインにFASTBOOTでなく、Serial0が表示されている場合には、
(戻るマークの)BACKでFASTBOOTに切り替えることができる(逆は、カメラキー) - デバイスとPCを(USB接続していなければ)接続する
- 必要であれば、コマンドラインから「fastboot erase userdata」を実行する
※実行すると、ダウンロードしたアプリや、その他の設定が削除されます
(SIMロックを解除していた情報や、セットアップ時に登録したgoogle acountなども含む)
多くの場合、バージョンアップの際には不要です(バージョンダウンでは必要) - コマンドラインから「fastboot erase cache」を実行する
- コマンドラインから「fastboot update signed-dream_devphone-img-130444.zip」を実行する
※signed~zipは、必要なバージョンに応じて適宜読み替えてください、ここでの例は、Android1.1に書き換える場合の例
※fastbootモードを抜けるには、ADP1の場合、、
(緑の電話)通話キー + (赤の電話)切断キー + MENUキーを押すと、再起動できる
※< waiting for device >と表示されていれば接続に失敗している
Windowsの場合であれば、デバイスマネージャーから
「ADB Interface - HTC Dream Composite ADB Interface」
「ディスクドライブ - HTC Android Phone」
「ポータブルデバイス - Android Phone」などを削除し、再インストールする - 自動的に再起動されるはずであるが、そうでない場合、「fastboot reboot」を実行する
※確認した限りでは、自動的に再起動されました
ファームウェアのバージョンは、Setting - About Phone - Firmware versionで確認できます。
ハマりどころは、fastbootで< waiting for device >と表示された場合の対処方法ですが、それ以外は問題なくできました。
※参考にした記事
- Android Developers Blog: Software Update Available for the Android Developer Phone
- splhack: official ADP1 image
- akJ Android ブログ: Android Dev Phone1の正式版 Firmware 1.1が公開されました
- Archive Does Not Contain "boot.sig" - Android-DevPhone-Updating | Google グループ
- Mobile Developing (Android + Java) » Android Dev Phone 1をSIMカードなしでアクティベート
エミュレーター/デバイス(実機)のシリアル番号を取得するには、
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進数で表現した文字列です
