언젠가 부터 내가 만든 앱에서
앱 설치 여부와 관계없이
아래의 코드 실행시 NameNotFoundException이 발생하고 있다.
PackageManager.getPackageInfo("com.star.apps", 0);
원인을 찾아보니,
Android11버전부터는 개인 정보보호를 위해
동일 기기에 설치된 다른 앱을 쿼리하고 상호 작용하는 방식이 변경되었다고 한다.
다른 앱을 쿼리하고 상호 작용하려면 AndroidManifest.xml에 다음을 추가하자.
<queries>
<package android:name="com.star.apps" />
</queries>
또는 아래의 permission을 추가해도 된다.
QUERY_ALL_PACKAGES는 Android 11버전에 새로 추가되었다고 한다.
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
자세한 내용은 아래를 참고하면 된다.
https://developer.android.com/about/versions/11/privacy/package-visibility