2012年10月9日火曜日

Android ビルドバージョンの取得と判定:Build.VERSION

自身が使っているデバイスの Android バージョンは Build.VERSION クラスの Build.VERSION.SDK_INT から取得することができます。
(Build.VERSION.SDK で同じ値をString型で取得することができますが、こちらは非推奨(@Deprecated)となっています)

取得した Android バージョンは Build.VERSION_CODES クラスに定義されたビルドバージョンの定数値と比較することで、バージョンに応じた処理分岐を行うことができます。

API Reference: Build.VERSION, Build.VERSION_CODES

比較方法:
switch (Build.VERSION.SDK_INT) {
case Build.VERSION_CODES.BASE:
// Android 1.0 (API 1)
break;
case Build.VERSION_CODES.BASE_1_1:
// Android 1.1 (API 2)
break;
case Build.VERSION_CODES.CUPCAKE:
// Android 1.5 (API 3)
break;
case Build.VERSION_CODES.DONUT:
// Android 1.6 (API 4)
break;
case Build.VERSION_CODES.ECLAIR:
// Android 2.0 (API 5)
break;
case Build.VERSION_CODES.ECLAIR_0_1:
// Android 2.0.1 (API 6)
break;
case Build.VERSION_CODES.ECLAIR_MR1:
// Android 2.1 (API 7)
break;
case Build.VERSION_CODES.FROYO:
// Android 2.2 (API 8)
break;
case Build.VERSION_CODES.GINGERBREAD:
// Android 2.3 (API 9)
break;
case Build.VERSION_CODES.GINGERBREAD_MR1:
// Android 2.3.3 (API 10)
break;
case Build.VERSION_CODES.HONEYCOMB:
// Android 3.0 (API 11)
break;
case Build.VERSION_CODES.HONEYCOMB_MR1:
// Android 3.1 (API 12)
break;
case Build.VERSION_CODES.HONEYCOMB_MR2:
// Android 3.2 (API 13)
break;
case Build.VERSION_CODES.ICE_CREAM_SANDWICH:
// Android 4.0 (API 14)
break;
case Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1:
// Android 4.0.3 (API 15)
break;
case Build.VERSION_CODES.JELLY_BEAN:
// Android 4.1 (API 16)
break;
case Build.VERSION_CODES.CUR_DEVELOPMENT:
// 未リリースの開発用バージョン
break;
default:
break;
}
以上が2012/09/09時点の全バージョンになります。
一般販売されているのは Android 1.5 以降のため、以下の3つは考える必要はありません。
・Build.VERSION_CODES.BASE
・Build.VERSION_CODES.BASE_1_1
・Build.VERSION_CODES.CUR_DEVELOPMENT
(すでに 1.6 すら対応必要なさそうですが…)

これを書くまで気づかなかったけど、Androidのコードネームはアルファベット順だったんですね。
お菓子の名前を適当につけているだけだと思っていました。
今は「J」で次は「K」。Android 5.0 で「Key Lime Pie」みたい。
Android 'Key Lime Pie' comes after Jelly Bean

0 件のコメント:

コメントを投稿