안드로이드 인텐트 필터

프로그래밍/Android 2013. 8. 26. 18:32

안드로이드 인텐트 필터


인텐트 필터

- intent-filter 는 적어도 하나의 action 을 포함하여야 한다.

샘플 AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.android.notepad">

<application android:icon="@drawable/app_notes" android:label="@string/app_name">

<provider android:name="NotePadProvider" android:authorities="com.google.provider.NotePad"/>

<activity android:name="NotesList" android:label="@string/title_notes_list">

<intent-filter>

<action android:name="android.intent.action.MAIN"/> // 이 어플리케이션에 대한 메인 시작 점을 선언한다.

<category android:name="android.intent.category.LAUNCHER"/> // 이 시작점이 어플리케이션 런처안에 나열되어야 한다는 것을 말한다.

</intent-filter>

<intent-filter>          // 이 필터를 통해 액티비티가 할 수 잇는 것들을 선언한다.

<action android:name="android.intent.action.VIEW"/> // 디렉토리 조회

<action android:name="android.intent.action.EDIT"/> // 디렉토리 수정

<action android:name="android.intent.action.PICK"/> // 디렉토리 내의 특정 노트를 가져올 수 있음

<category android:name="android.intent.category.DEFAULT/>

<data android:mimeType="vnd.android.cursor.dir/vnd.google.note"/> // 위의 액션들이 디렉토리를 대상으로 실행되는것을 지정

</intent-filter>

<intent-filter>

<action android:name="android.intent.action.GET_CONTENT"/> // 사용자에 의해 선택된 노트를 반환

<category android:name="android.intent.category.DEFAULT"/>

<data android:mimeType="vnd.android.cursor.item/vnd.google.note"/>  // 위의 액션들이 하나의 노트를 대상으로 실행되는것을 지정

</intent-filter>

</activity>

<activity android:name="NoteEditor"

android:theme="@android:style/Theme.Light"

android:label="@string/title_note" >

<intent-filter android:label="@string/resolve_edit">

<action android:name="android.intent.action.VIEW" /> // 노트 조회

<action android:name="android.intent.action.EDIT" /> // 노트 수정

<action android:name="com.android.notepad.action.EDIT_NOTE" />  // EDIT_NOTE 는 EDIT 와 동의어이다.

<category android:name="android.intent.category.DEFAULT"/>

<data android:mimeType="vnd.android.cursor.item/vnd.google.note" />   // 위의 액션들이 하나의 노트를 대상으로 실행되는것을 지정

</intent-filter>

<intent-filter>

<action android:name="android.intent.action.INSERT"/> // 신규 노트 생성

<category android:name="android.intent.category.DEFAULT"/>

<data android:mimeType="vnd.android.cursor.dir/vnd.google.note"/> // 위의 액션들이 디렉토리를 대상으로 실행되는것을 지정

</intent-filter>

</activity>

<activity android:name="TitleEditor"

android:label="@string/title_edit_title"

android:theme="@android:style/Theme.Dialog">

<intent-filter android:label="@string/resolve_title">

<action android:name="com.android.notepad.action.EDIT_TITLE" /> // 노트의 제목을 수정하는 커스텀 액션

<category android:name="android.intent.category.DEFAULT" />

<category android:name="android.intent.category.ALTERNATIVE" />

<category android:name="android.intent.category.SELECTED_ALTERNATIVE" />

<data android:mimeType="vnd.android.cursor.item/vnd.google.note"/>   // 위의 액션들이 하나의 노트를 대상으로 실행되는것을 지정

</intent-filter>

</activity>

</application>

</manifest>


: