반응형
안드로이드에서 특정 앱이 설치되어 있는지 확인하는 방법을 알아보겠습니다.
특정 앱이 설치되어 있는지 확인하기 위해서는 먼저 해당 앱의 패키지명을 알아야합니다.
카카오톡의 패키지명을 기준으로 설명드리겠습니다.
카카오톡의 패키지명은 'com.kakao.talk'입니다.
String packagename= "com.kakao.talk";
아래는 패키지명이 설치되어 있는지 검색하는 메서드입니다.
public static boolean isInstallPackage(Context context, String packagename){
String mpackagename = packagename;
try {
PackageManager pm = context.getPackageManager();
PackageInfo pi = pm.getPackageInfo(mpackagename.trim(), PackageManager.GET_META_DATA);
ApplicationInfo appInfo = pi.applicationInfo;
// 패키지가 있을 경우.
Log.d(TAG,packagename + " 패키지가 설치되어 있습니다.");
return true;
} catch (PackageManager.NameNotFoundException e){
Log.d(TAG,packagename + " 패키지가 설치되어 있지 않습니다.");
return false;
} catch (Exception e){
return false;
}
}
한가지 주의사항은 Android 11(API 30)에서는
매니페스트파일(AndroidManifest.xml)에서 아래와 같이 사전선언이 필요합니다.
<manifest>
<queries>
<package android:name="com.kakao.talk"/>
</queries>
</manifest>
https://developer.android.google.cn/training/basics/intents/package-visibility?hl=ko
패키지 공개 상태 관리 | Android 개발자 | Android Developers
앱을 만들 때는 기기에 설치된 다른 앱, 즉 내 앱에서 액세스하려는 앱을 표시하는 패키지 집합을 고려하는 것이 중요합니다. 앱이 Android 11(API 수준 30) 이상을 타겟팅한다면 시스템에서 일부 앱
developer.android.google.cn
이상으로 안드로이드에서 특정 앱이 설치되어 있는지 확인하는 방법을 알아보았습니다.
오늘도 내일도 항상 즐거운 시간만 가득하세요~

반응형
'프로그래밍 > 안드로이드' 카테고리의 다른 글
[안드로이드] 디버그 출력 프린트 클래스 전체소스 (0) | 2022.01.06 |
---|---|
[안드로이드] Android 오픈소스(Open Source) 사이트 모음 (0) | 2022.01.04 |
[안드로이드] Permission 권한 요청 방법 (0) | 2021.12.30 |
[안드로이드] 전화걸기(ACTION_DIAL), 전화다이얼표시(ACTION_CALL) 사용법 및 차이점 (0) | 2021.12.27 |
댓글