배경 : 팀에서 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 특성 참조).
'개발 > 06.Android' 카테고리의 다른 글
[Android] Android Studio 스마트폰 연결하기(개발자모드 설정 후 연결 방법) (0) | 2023.10.23 |
---|---|
[Android] Android Studio 앱 로그보는법 (Logcat 사용법) (0) | 2023.10.23 |
[Android] targerSdkVersion 31(Android 10) 버전 내 특정 패키지 쿼리 상호작용 관련 삽질 (0) | 2023.10.23 |
[Android] targetSdkVersion 33 적용간 유의사항 (0) | 2023.10.16 |
[Android] Android Studio 내 Run 할 경우 'App' 비활성화시 대처 방안 (0) | 2023.10.16 |