エンジニアとしての市場価値を測りませんか?PR

企業からあなたに合ったオリジナルのスカウトを受け取って、市場価値を測りましょう

4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?