📱테스트 환경
Samsung Galaxy Android 13 • Android 10
applicationInfo & packageManager
01. getAppInfo.kt 파일 생성 ( utils/getAppInfo.kt )
02. 먼저 getAppName 함수 생성
fun getAppName(context: Context): String {
val applicationInfo = context.applicationInfo
val stringId = applicationInfo.labelRes
return if (stringId == 0) applicationInfo.nonLocalizedLabel.toString() else context.getString(stringId)
}
사실 함수를 따로 분리하지 않을 거라면 context 를 따로 받지 않아도 상관없지만 분리할수 있는 부분은 최대한 분리한다.
중요한 함수는 applicationInfo 인데 현재 애플리케이션의 정보를 가져온다.
labelRes 가 0 이라면 nonLocalizedLabel 에서 문자열로 반환해서 가져오고, 아니라면 애플리케이션 환경정보에서 가져온다.
val appName = findViewById<TextView>(R.id.appName)
appName.text = getAppName(this)
나는 이런식으로 화면에서 TextView 의 ID 값을 가져와서 애플리케이션 이름을 넣어줬다. 앱의 헤더 부분에 앱 이름을 표기하는데
사용하면 참 좋을 것 같다.
03. getAppIcon 함수 생성
fun getAppIcon(context: Context): Drawable? {
return try {
context.packageManager.getApplicationIcon(context.packageName)
} catch (e: PackageManager.NameNotFoundException) {
null
}
}
이 함수 또한 분리하지 않을꺼라면 context 를 받아올 필요는 없긴 하다.
packageManager 가 중요한데 packageName 을 가지고 현재 애플리케이션의 아이콘을 가져온다.
try catch 를 이용해서 예외처리를 해주는데 나 같은 경우에는 못받아오면 다른 대체 이미지를 보여주기 때문에 null 을 반환해서
다른 이미지를 보여주고 있지만 필요하다면 예외처리를 해주는건 항상 좋다.
'Android > Kotlin' 카테고리의 다른 글
[Kotlin] Text 에 Url 연결하기 - 택배검색 url 연결하기 (1) | 2023.11.25 |
---|---|
[Kotlin] Admob 적응형 배너 등록하는 방법 (0) | 2023.11.25 |
[Kotlin] 화면의 디스플레이 크기 확인하기 (0) | 2023.10.24 |
[Kotlin] 동적 생성한 View textSize SP 로 설정하기 (0) | 2023.10.24 |
[Kotlin] 앱, 패키지 설치 여부 확인하는 방법 (2) | 2023.10.16 |