안드로이드 11에서 패키지 공개 상태 변경으로 앱 간 정보 접근 방식이 제한됨
AndroidManifest.xml에 쿼리할 앱을 명시하거나, QUERY_ALL_PACKAGES 권한 사용 필요
PackageManager API 사용 시, NameNotFoundException 발생 및 설치된 앱 목록 제한
안드로이드 11은 사용자 프라이버시 강화를 위해 앱이 다른 앱의 정보를 얻는 방식을 제한한다. 구체적으로, targetSdkVersion이 30 이상인 앱은 AndroidManifest에 명시된 앱만 쿼리할 수 있다. 따라서, 기존 방식의 PackageManager API 사용은 예외 발생 가능성이 높아졌다.
QUERY_ALL_PACKAGES 권한은 모든 앱 정보를 쿼리할 수 있는 강력한 권한이지만, Google Play의 엄격한 심사를 받는다. 반면, AndroidManifest를 통해 필요한 앱만 명시하면, 권한 없이 기존 기능을 유지할 수 있다. 따라서, 최소 권한 원칙을 준수하여 앱 접근성을 확보해야 한다.
안드로이드 11에서 PackageManager.getPackageInfo()는 NameNotFoundException을 발생시킬 수 있다. 따라서, 예외 처리 로직을 추가하고, Intent를 활용한 앱 실행 방식을 고려해야 한다. 구체적으로, 인텐트 필터를 사용하여 브라우저 앱을 실행하는 방법을 익히고, 테스트 코드를 통해 호환성을 검증해야 한다.