반응형
안녕하세요.
이번 포스팅은 안드로이드 개발중에 내 앱이 아닌 설치된 다른 앱의 존재여부를 검사하는 작업을 할때 사용하는 유틸클래스를 소개하고자 합니다.
많은곳에서 사용할 수 있으므로 공용 클래스로 작성하여 사용하면 됩니다.
사용하기전에 AndroidManifest.xml에 다음과 같이 작성해주셔야 됩니다.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.your.packagename">
<queries>
<package android:name="com.other.packagename"/>
</queries>
<application
// 생략..............................
</application>
</manifest>
<queries></queries> 태그안에 대상 패키지명을 적어주시면 됩니다.
package com.sep12.torqueds.utils
import android.content.Context
import android.content.pm.PackageManager
import android.util.Log
import com.your.packagename.BuildConfig
import java.lang.Exception
class PackageUtils(val context: Context) {
companion object {
private const val TAG = "PackageUtils"
}
fun isPackageInstalled(packageName: String, packageManager: PackageManager): Boolean {
return try {
packageManager.getPackageInfo(packageName, 0)
true
} catch (e: PackageManager.NameNotFoundException) {
if (BuildConfig.DEBUG) {
Log.e(TAG, "isPackageInstalled: PackageManager.NameNotFoundException")
}
false
}
}
}
구현은 다음과 같이 되어 있습니다. 첫번째 파라미터에 검색할 패키지 이름(String)을 넣어주고, PackgeManager를 넣어줍니다.
사용하는 방법은 다음과 같습니다.
fun checkPackgeName(context: Context): Boolean {
val packageManager = context.packageManager
PackageUtils(context).let { utils ->
if (utils.isPackageInstalled("com.other.packgename", packageManager)) {
Log.d(TAG, "checkPackgeName: return true")
return true
}
}
Log.w(TAG, "checkPackgeName: return false")
return false
}
감사합니다.
참고한 사이트
* https://stackoverflow.com/questions/18752202/check-if-application-is-installed-android
반응형
'Development > Android' 카테고리의 다른 글
Gson 라이브러리 사용하기 (0) | 2022.01.25 |
---|---|
Android Notification 만들기 (0) | 2022.01.13 |
Material Design 3 (0) | 2021.12.03 |
안드로이드 액션바 제거하기 (0) | 2021.11.08 |
Android BottomNavigationView 텍스트 라벨처리 (0) | 2021.10.04 |