はじめに
新規アプリは2019/8、既存アプリは2019/11からAPI レベル 28+ をターゲットとすることが必須になりました。
その対応中に気付いたので記事にしておきます。
PackageInfo.versionCodeが非推奨
versionCodeはAPI レベル 28から非推奨になりました。
対応
なので、リファレンスに沿って対応します。
自力で書く場合
fun getLongVersionCode(context: Context): Long {
val packageInfo = context.packageManager.getPackageInfo(context.packageName, 0)
return if (Build.VERSION.SDK_INT >= 28) packageInfo.longVersionCode else packageInfo.versionCode.toLong()
}
android.support.v4使用
fun getLongVersionCode(context: Context) =
PackageInfoCompat.getLongVersionCode(
context.packageManager.getPackageInfo(context.packageName, 0)
)
感想
ついフォアグラウンドサービス対応とかに目が行ってしまいますが、こういう箇所も地味に対応していかないといけないようですね。
そしてお決まりのBuild.VERSION.SDK_INTでの分岐。。。