본문 바로가기

개발/06.Android

[Android] exported 설명 (기본)

배경 : 팀에서 targerSdkVersion = 31 셋팅간 1차 변경 적용 필수 건인 android:exported 필수 셋팅 관련 이게 뭔내용인지 알기 위함

내용 : 

AndroidManifest.xml 파일의 activity 또는 receiver 등에 설정할 수 있는 android:exported 에 대한 설명은 다음과 같습니다. receiver 인 경우는 아래의 문구에서 Activity 를 Receiver 로 생각하시면 대충 의미가 이해되실 것 같습니다.

android:exported 는 다른 애플리케이션의 구성요소로 Activity 를 시작할 수 있는지 설정합니다. 다른 앱에서 Activity 를 시작할 수 있으면 "true" 로 설정하고 다른 앱에서 Activity 를 시작할 수 없으면 "false" 로 설정합니다. android:exported 가 "false" 로 설정된 경우, 해당 Activity 는 같은 앱 또는 사용자 ID 가 같은 앱에서만 시작할 수 있습니다.

인텐트 필터를 사용하는 경우 android:exported 를 "false" 로 설정하면 안 됩니다. 이렇게 설정하고 앱이 Activity 를 호출하려 하면 시스템이 ActivityNotFoundException을 발생시킵니다. 대신 이에 대한 인텐트 필터를 설정하지 않아 다른 앱이 이 Activity 를 호출하지 못하게 방지해야 합니다.

인텐트 필터가 없는 경우, android:exported 의 기본값은 "false"입니다. 이 요소를 "true"로 설정하면 이 Activity 는 Activity 의 정확한 클래스 이름을 아는 모든 앱에서 액세스할 수 있지만, 시스템이 암시적 인텐트를 일치시키려 할 때는 확인되지 않습니다.

android:exported 외에도 다른 애플리케이션에 Activity 노출을 제한하는 방법이 있습니다. Activity 를 호출할 수 있는 외부 엔터티를 제한하는 권한을 사용할 수도 있습니다(permission 특성 참조).

 
728x90