Published 2020. 10. 6. 01:02
반응형
안드로이드 코틀린 앱 버전 표시하기
Android Kotlin get AppVersionName
안드로이드 앱을 접하면서 메인 구석에 버전을 표시하는 것을 많이 볼 수 있다.
버전 표시에 해당 앱을 업데이트 할 때 마다 수동적으로 버전을 바꾸어 줄 수 있고, 아니면 그레이들에 정의한 버전이름을 가져와서 표시 할 수 있다.
그레이들에 있는 버전을 가져와서 표시하는 것이 가장 편리하고 실수 없이 정확하다고 생각이 든다, 왜냐하면 업데이트를 하고 플레이스토어에 올릴려면 그레이들의 버전을 꼭 올려야 하기때문이다.
그레이들에 정의한 앱 버전이름을 가져오는 방법은 이미 안드로이드에서 제공해주기 때문에 우리는 잘 가져다 쓰기만 하면 된다.
그리고 이 방법 또한 무척이나 쉽다.
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.work.Sample"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
이에 앞서 버전이름은 app단의 build.gradle에서 확인할 수 있다.
defaultConfig에서 versionName을 확인할 수 있다.
fun getVersion(context : Context): String? {
var versionName = ""
val pm = context.packageManager.getPackageInfo(context.packageName, 0)
versionName = pm.versionName
return versionName
}
위는 간단하게 버전이름만 가져오는 함수이다.
넘겨받은 context를 이용해서 packageManager.getPackageInfo(context.packageName, 0)을 생성한 후
거기서 versionName만 가져오면 된다.
public abstract PackageInfo getPackageInfo(String packageName, @PackageInfoFlags int flags)
throws NameNotFoundException;
getPackageInfo를 가보면 exception이 발생되면 바로 죽여버리기 때문에 아무래도 앱이 죽지는 않게끔 try~catch처리는 해줘야 할 것 같다.
fun getVersion(context : Context): String? {
var versionName = ""
try {
val pm = context.packageManager.getPackageInfo(context.packageName, 0)
versionName = pm.versionName
} catch (e : Exception) {
// Exception
}
return versionName
}
NameNotFoundException이라고 위에 명시되어 있지만.. 그냥 Exception으로 묶어버리자.
ps.flags값은 뭔지 잘 모르겠음..
반응형
'[# 2]…My DevelopStory' 카테고리의 다른 글
안드로이드 코틀린 바 그래프 ~ Android Kotlin Bar chart, Bar graph (0) | 2020.10.15 |
---|---|
안드로이드 코틀린 원형 그래프, 파이 그래프 ~ Android Kotlin Circle Graph, Pie Graph (0) | 2020.10.11 |
안드로이드 코틀린 숏컷 구현하기 ~ Android Kotlin Shortcut (3) | 2020.10.03 |
안드로이드 코틀린 그리드뷰 사용하기 ~ Android Kotlin GridView (1) | 2020.10.02 |
안드로이드 No Activity found to handle Intent 예외처리 ~ android No Activity found to handle Intent exception (0) | 2020.09.26 |