Con este ejemplo, vas a poder navegar a través de una lista de notas, ver los detalles sobre los elementos de esa lista, editarlos y agregar nuevos elementos a la lista. Es un ejemplo en el que se utilizan intent filters (filtros) declarados en un archivo de manifiesto.
En el archivo de manifiesto, la aplicación Notas declara tres actividades, cada una con al menos un intent filtres. También declara un proveedor de contenido (content provider) que administra los datos de la nota. A continuación se puede ver el archivo manifiesto:
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.notepad">
<applicationandroid:icon="@drawable/app_notes"
android:label="@string/app_name">
<providerandroid:name="NotePadProvider"
android:authorities="com.google.provider.NotePad"/>
<activityandroid:name="NotesList"android:label="@string/title_notes_list">
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<actionandroid:name="android.intent.action.VIEW"/>
<actionandroid:name="android.intent.action.EDIT"/>
<actionandroid:name="android.intent.action.PICK"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<dataandroid:mimeType="vnd.android.cursor.dir/vnd.google.note"/>
</intent-filter>
<intent-filter>
<actionandroid:name="android.intent.action.GET_CONTENT"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<dataandroid:mimeType="vnd.android.cursor.item/vnd.google.note"/>
</intent-filter>
</activity>
<activityandroid:name="NoteEditor"
android:theme="@android:style/Theme.Light"
android:label="@string/title_note">
<intent-filterandroid:label="@string/resolve_edit">
<actionandroid:name="android.intent.action.VIEW"/>
<actionandroid:name="android.intent.action.EDIT"/>
<actionandroid:name="com.android.notepad.action.EDIT_NOTE"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<dataandroid:mimeType="vnd.android.cursor.item/vnd.google.note"/>
</intent-filter>
<intent-filter>
<actionandroid:name="android.intent.action.INSERT"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<dataandroid:mimeType="vnd.android.cursor.dir/vnd.google.note"/>
</intent-filter>
</activity>
<activityandroid:name="TitleEditor"
android:label="@string/title_edit_title"
android:theme="@android:style/Theme.Dialog">
<intent-filterandroid:label="@string/resolve_title">
<actionandroid:name="com.android.notepad.action.EDIT_TITLE"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<categoryandroid:name="android.intent.category.ALTERNATIVE"/>
<categoryandroid:name="android.intent.category.SELECTED_ALTERNATIVE"/>
<dataandroid:mimeType="vnd.android.cursor.item/vnd.google.note"/>
</intent-filter>
</activity>
</application>
</manifest>
<intent-filter>
<actionandroid:name="android.intent.action.MAIN"/>
<categoryandroid:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<actionandroid:name="android.intent.action.VIEW"/>
<actionandroid:name="android.intent.action.EDIT"/>
<actionandroid:name="android.intent.action.PICK"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<dataandroid:mimeType="vnd.android.cursor.dir/vnd.google.note"/>
</intent-filter>
<intent-filter>
<actionandroid:name="android.intent.action.GET_CONTENT"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<dataandroid:mimeType="vnd.android.cursor.item/vnd.google.note"/>
</intent-filter>
android.intent.action.MAIN
android.intent.action.MAIN
android.intent.category.LAUNCHER
android.intent.action.VIEW
content://com.google.provider.NotePad/notes
ontent://com.google.provider.NotePad/notes. Entonces, el usuario puede examinar la lista y obtener información acerca de los artículos que hay en ella.
android.intent.action.PICK
content://com.google.provider.NotePad/notes
content://com.google.provider.NotePad/notes. El usuario puede, a continuación, seleccionar una nota de la lista, y la actividad devolverá el URI.
android.intent.action.GET_CONTENT
vnd.android.cursor.item/vnd.google.note
<intent-filterandroid:label="@string/resolve_edit">
<actionandroid:name="android.intent.action.VIEW"/>
<actionandroid:name="android.intent.action.EDIT"/>
<actionandroid:name="com.android.notepad.action.EDIT_NOTE"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<dataandroid:mimeType="vnd.android.cursor.item/vnd.google.note"/>
</intent-filter>
<intent-filter>
<actionandroid:name="android.intent.action.INSERT"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<dataandroid:mimeType="vnd.android.cursor.dir/vnd.google.note"/>
</intent-filter>
Acción: android.intent.action.VIEW
datos: content://com.google.provider.NotePad/notes/ID
Muestra el contenido de la nota identificada por ID.
Acción: android.intent.action.EDIT
datos: content://com.google.provider.NotePad/notes/ID
Muestra el contenido de la nota identificada por ID, y permite al usuario editarla. Si el usuario guarda los cambios, la actividad actualiza los datos de la nota en el proveedor de contenido.
Acción: android.intent.action.INSERT
datos: content://com.google.provider.NotePad/notes
<intent-filterandroid:label="@string/resolve_title">
<actionandroid:name="com.android.notepad.action.EDIT_TITLE"/>
<categoryandroid:name="android.intent.category.DEFAULT"/>
<categoryandroid:name="android.intent.category.ALTERNATIVE"/>
<categoryandroid:name="android.intent.category.SELECTED_ALTERNATIVE"/>
<dataandroid:mimeType="vnd.android.cursor.item/vnd.google.note"/>
</intent-filter>
Acción: com.android.notepad.action.EDIT_TITLE
datos: content://com.google.provider.NotePad/notes/ID
Llama la actividad para mostrar el título asociado no la nota ID, y permite que el usuario pueda editar el título.