Adsense_top

2013年3月10日日曜日

Androidメモ - 端末バージョンで処理を切り替える

Androidのプログラミングメモです。 

端末のAndroidのバージョンに因って処理を切り替える方法



 switch(Build.VERSION.SDK_INT) {
case Build.VERSION_CODES.DONUT: // 1.6 (初代Xperia)
break;
case Build.VERSION_CODES.ECLAIR // 2.0
break;
case Build.VERSION_CODES.ECLAIR_0_1 // 2.01
break;
case Build.VERSION_CODES.ECLAIR_MR1: // 2.1
break;
case Build.VERSION_CODES.FROYO: // 2.2
break;
case Build.VERSION_CODES.GINGERBREAD: // 2.3
break;
case Build.VERSION_CODES.GINGERBREAD_MR1: // 2.3.3
break;
case Build.VERSION_CODES.HONEYCOMB: // 3.0
break;
case Build.VERSION_CODES.HONEYCOMB_MR1 // 3.1
break;
case Build.VERSION_CODES.HONEYCOMB_MR2 // 3.2
break;
case Build.VERSION_CODES.ICE_CREAM_SANDWICH // 4.0
break;
case Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1 // 4.0.3
break;
case Build.VERSION_CODES.JELLY_BEAN // 4.1
break;
case Build.VERSION_CODES.JELLY_BEAN_MR1 // 4.2
break;
default:
break;
}
詳細、1.6より前および投稿以降のバージョンについいては、Androidのリファレンスの「Build.VERSION_CODES」を参照。

2013年2月2日土曜日

Androidメモ - ハードキーイベントの横取り方法

Androidのプログラミングメモです。 

・ハードキーイベントの横取り方法 
Activityでは、「dispatchKeyEvent」を使用。 
Viewでは、「onKeyUp」「onKeyDown」を使用。
「onKeyUp」「onKeyDown」について、ハード(Androidのバージョン)により動作が異なるとの情報もあるため、「dispatchKeyEvent」の方が無難と思われる。
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
// 例はボタンが離された時
// ボタンが押された時を拾うにはKeyEvent.ACTION_DOWN
// (但し、長押しの場合、連続して呼ばれる事がある点に注意)
if (event.getAction() == KeyEvent.ACTION_UP) {
switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_VOLUME_UP: // 音量アップボタン
// trueで、コード側で処理した事を表わす。
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN: // 音量ダウンボタン
return true;
// case
// : 
default:
return super.dispatchKeyEvent(event);
}
}
return super.dispatchKeyEvent(event);
}