가끔 안드로이를 앱을 만들다가 에러가 난 적이 있습니다.
에러 내용이 Android android:exported와 관련된 내용인데, android:exported:true or false로 설정해주니 해결되었는데 이게 뭘까 해서 찾아봤습니다.
우선 구글에서 설명하는 방식은 아래와 같습니다.
android:exported이 요소는 다른 애플리케이션의 구성요소로 액티비티를 시작할 수 있는지 설정합니다. 할 수 있으면 "true", 할 수 없으면 "false"입니다. "false"인 경우, 해당 액티비티는 같은 애플리케이션의 구성요소 또는 사용자 ID가 같은 애플리케이션으로만 시작할 수 있습니다.
인텐트 필터를 사용하는 경우 이 요소를 "false"로 설정하면 안 됩니다. 이렇게 설정하고 앱이 액티비티를 호출하려 하면 시스템이 ActivityNotFoundException을 발생시킵니다. 대신 이에 대한 인텐트 필터를 설정하지 않아 다른 앱이 이 액티비티를 호출하지 못하게 방지해야 합니다.
인텐트 필터가 없는 경우, 이 요소의 기본값은 "false"입니다. 이 요소를 "true"로 설정하면 이 액티비티는 액티비티의 정확한 클래스 이름을 아는 모든 앱에서 액세스할 수 있지만, 시스템이 암시적 인텐트를 일치시키려 할 때는 확인되지 않습니다.
이 특성 외에도 다른 애플리케이션에 액티비티 노출을 제한하는 방법이 있습니다. 액티비티를 호출할 수 있는 외부 엔터티를 제한하는 권한을 사용할 수도 있습니다(permission 특성 참조).
대충 true로 해놓으면 다른 앱에서 현재 이 앱을 실행할 수 있는데, false로 해놓으면 실행할 수 없다 라고 하는 것 같습니다.
끝.
- 참조
https://developer.android.com/guide/topics/manifest/activity-element?hl=ko#exported
'Android(Kotlin)' 카테고리의 다른 글
Android Room Sqlite 시각적으로 보기 (0) | 2021.12.10 |
---|---|
Android FireStore + Coroutine (21) | 2021.11.27 |
Enum class (0) | 2021.11.14 |
Android API (0) | 2021.11.07 |
Android arr module 만들기 및 import (0) | 2021.11.07 |