LoginSignup
4
1

More than 3 years have passed since last update.

【Android】アプリのバージョンコードを取得する(API レベル 28+)

Posted at

はじめに

新規アプリは2019/8、既存アプリは2019/11からAPI レベル 28+ をターゲットとすることが必須になりました。
その対応中に気付いたので記事にしておきます。

PackageInfo.versionCodeが非推奨

versionCodeはAPI レベル 28から非推奨になりました。
screen_shot.png

対応

なので、リファレンスに沿って対応します。

自力で書く場合

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での分岐。。。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1