【Kotlin】sdk のバージョンで処理を処理を分ける方法とバージョン一覧

Android 開発時にOSのバージョンによってメリットの書き方が変わったり、APIが非推奨(Deprecated)になることがあります。(is Deprecated as of api)

Androidは古いバージョンを利用されていることが多いため簡単には古いバージョンは非対応にできません。インストールできる対象端末が減ってしまいます。

また最新のAPIを利用時「minSdkVersion」の低い端末では利用することができず実行時エラーが発生します。

さらに、Android Studio では警告が出ます。
Call requires API level 3 current min is 21

そこで、実行する端末のOSによって処理を変える必要があります。

バージョン毎に処理を変える方法

端末のバージョンを取得し〜以上、以下、指定のバージョンで処理を切り替えます。
細かくバージョンの処理を分ける場合は「when」を大きく分ける場合は「if」で切り替えると良いでしょう。

if の場合

if(Build.VERSION.SDK_INT == Build.VERSION_CODES.O) {
    // API26 の処理
}

when の場合

when {
    Build.VERSION.SDK_INT == Build.VERSION_CODES.O -> println("O")
    Build.VERSION.SDK_INT == Build.VERSION_CODES.N_MR1 -> println("N_MR1")
    else -> println("I don't know version.")
}

バージョンの種類

API バージョン変数名OSバージョンリリース日
1BASE1.02008年10月
2BASE_1_11.12009年2月
3CUPCAKE1.52009年3月
4DONUT1.62009年9月
5ECLAIR2.02009年11月
6ECLAIR_0_12.0.12009年12月
7ECLAIR_MR12.12010年1月
8FROYO2.2 – 2.2.32010年6月
9GINGERBREAD2.3 – 2.3.22010年11月
10GINGERBREAD_MR12.3.3 – 2.3.72011年2月
11HONEYCOMB3.02011年2月
12HONEYCOMB_MR13.12011年3月
13HONEYCOMB_MR23.2 – 3.2.62011年5月
14ICE_CREAM_SANDWICH4.0 – 4.0.22011年10月
15ICE_CREAM_SANDWICH_MR14.0.3 – 4.0.42011年11月
16JELLY_BEAN4.1 – 4.1.22012年6月
17JELLY_BEAN_MR14.2 – 4.2.22012年11月
18JELLY_BEAN_MR24.3 – 4.3.12013年7月
19KITKAT4.4 – 4.4.42013年10月
20KITKAT_WATCH4.4W – 4.4W.22014年6月
21L
LOLLIPOP
5.0 – 5.0.22014年11月
22LOLLIPOP_MR15.1 – 5.1.12015年3月
23M6.0 – 6.0.12015年10月
24N7.02016年8月
25N_MR17.1 – 7.1.22016年10月
26O8.02017年8月
27O_MR18.12017年12月
28P9.02018年8月
29Q10.02019年9月

 

タイトルとURLをコピーしました