메뉴 건너뛰기

app

[안드로이드] intent-filter

lispro062015.11.20 05:49조회 수 1454댓글 0

    • 글자 크기
<activity android:label="@string/app_name" android:name=".SplashActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>

안드로이드 manifest 파일엔 Activity 중에 다른 앱이 해당 앱을 실행 시킬 수 있도록 하는 기능이 있다. 

http://nuninaya.tistory.com/556

android:exported – 다른 애플리케이션의 컴포넌트에서 이 액티비티를 런치 할 수 있는지를 설정한다. “false”라면 이 액티비티는 같은 애플리케이션 혹은 같은 유저 ID를 가진 애플리케이션 컴포넌트만 런치 할 수 있다. 디폴트는 액티비티가 인텐트 필터를 포함하는지에 달려있다. 필터가 없다면 디폴트 값이 “false”이고 필터가 있다면 “true”이다.
MAIN/LAUNCHER 액티비티에는 절대로 “false”값을 주면 안 된다. “false”값을 주게 되면 SecurityException이 발생하고 exported 속성을 true로 설정해 달라는 메시지가 출력된다.

이 activity  말고, 글을 쓴다거나 임의 동작을 실행시키도록 기능이 동작한다면, 보안 위협이 될 수 있다. 이를 방지하기 위해

    <activity
        android:name=".MyActivity"
        android:exported="false"
        android:noHistory="true" >
        <intent-filter>
       ...........................

를 사용하는데, android:exported="false" 가 핵심 키워드이다. 기능이 악용되거나 운영 서버에 영향을 미칠만한 activity 가 무분별하게 공개되어 있다면, 해당 옵션을 설정해야 할 것이다.
lispro06 (비회원)
    • 글자 크기

댓글 달기

이전 1 2 3 4 5 6 7 8 9 10... 14다음
첨부 (0)
위로