Build.VERSION.SDK_INT には、フレームワークの SDK バージョンが数値ではいっています。この数値は Build.VERSION_CODES で定数として定義されているので、比較することで任意のビルドバージョンで処理をわけることができます。
if(Build.VERSION.SDK_INT == Build.VERSION_CODES.GINGERBREAD_MR1) {
// 2.3.3 向けの処理
} else {
// 2.3.3 以外向けの処理
}
if(Integer.parseInt(Build.VERSION.SDK) == Build.VERSION_CODES.CUPCAKE) {
// for 1.5
}
else {
switch(Build.VERSION.SDK_INT) {
case Build.VERSION_CODES.DONUT:
// for 1.6
break;
case Build.VERSION_CODES.ECLAIR_MR1:
// for 2.1
break;
case Build.VERSION_CODES.FROYO:
// for 2.2
break;
case Build.VERSION_CODES.GINGERBREAD:
// for 2.3
break;
case Build.VERSION_CODES.GINGERBREAD_MR1:
// for 2.3.3
break;
case Build.VERSION_CODES.HONEYCOMB:
// for 3.0
break;
default:
break;
}
}
・ 主な Build.VERSION_CODES の定数
CUPCAKE
May 2009: Android 1.5
DONUT
September 2009: Android 1.6
ECLAIR
November 2009: Android 2.0
ECLAIR_0_1
December 2009: Android 2.0.1
ECLAIR_MR1
January 2010: Android 2.1
FROYO
June 2010: Android 2.2
GINGERBREAD
November 2010: Android 2.3
GINGERBREAD_MR1
Almost newest version of Android, version 2.3.3
HONEYCOMB
Newest version of Android, version 3.0
# Build.VERSION.SDK に数字以外の文字列が入ると
# NumberFormatException になります。
# 安全なコードにしたいなら、try-catch するか、
# if(Build.VERSION.SDK.equals(String.valueOf(Build.VERSION_CODES.CUPCAKE)))
# なのかなぁ。
# ちなみに、Android Developers Blog: How to have your (Cup)cake and eat it too
# では、parseInt() 使ってました。