Android(Java)
[Java] 다른 앱 실행시 설치 유무 확인
삽질중
2024. 3. 25. 15:49
안드로이드 11이상 부터 패키지명으로 외부 앱 실행시 AndroidManifest.xml에 추가
<queries>
<package android:name="kr.go.mobileid" />
</queries>
또는 (아래코드 사용하면 앱심사때 엄청 빡쎄게 심사 받아야됨 해당 퍼미션 사용한 이유에 대해서 소명해야되지만 거의 승인 안남)
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
public static boolean isAppInstalled(Context context, String package_id) {
try {
PackageInfo packageInfo = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
packageInfo = context.getPackageManager().getPackageInfo(package_id, PackageManager.PackageInfoFlags.of((long) PackageManager.GET_ACTIVITIES));
} else {
packageInfo = context.getPackageManager().getPackageInfo(package_id, PackageManager.GET_ACTIVITIES);
}
return true;
} catch (PackageManager.NameNotFoundException e) {
return false;
}
}
또는
Intent intent = new Intent("verify", Uri.parse("mobileid://verify"));
intent.setPackage("kr.go.mobileid");
ComponentName componentName = intent2.resolveActivity(getContext().getPackageManager());
if (componentName != null) {
// 앱이 존재함
}