안드로이드

targetSdkVersion 30, intent.resolveActivity가 null일 경우

코딩하는후운 2021. 7. 29. 10:50
반응형

타겟 버전 30으로 올리면서

resolveActivity(인텐트를 수신할 앱이 있는지 먼저 확인) 호출을하면 null로 리턴하여 화면 이동이 되지 않았다.

 

Intent(MediaStore.ACTION_IMAGE_CAPTURE)이었는데 찾아보니

 

Android 11에서 패키지 공개상태가 변하면서 발생하는 이슈인듯 하다.

https://developer.android.com/about/versions/11/privacy/package-visibility?hl=ko 

 

Android 11의 패키지 공개 상태  |  Android 개발자  |  Android Developers

Android 11에서는 앱이 사용자가 기기에 설치한 다른 앱을 쿼리하고 상호작용하는 방법을 변경합니다. 요소를 사용하여 앱은 액세스할 수 있는 다른 패키지 집합을 정의할 수 있습니다. 이 요소를

developer.android.com

 

매니페스트에

<queries>
        <intent>
            <action android:name="android.media.action.IMAGE_CAPTURE" />
        </intent>

</queries>  

를 추가해주니 된다.

 

추가로 찾다보니 

<intent>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data android:scheme="https" />
</intent>

이런것도 있던데, 아마 웹뷰 호출같은거 할 때에도 추가해주는 듯 하다.

 

 

참조 :

https://shary1012.tistory.com/249

 

반응형