No nosso primeiro exemplo, o Hello World 1.0, já existe a declaração de um intent filter no AndroidManifest.xml para a Activity principal da nossa aplicação:
...
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...
Este intent filter indica que a activity MainActivity é aquela que deve ser iniciada ao abrir a aplicação e que também deve ser listada como uma aplicação do Android que pode ser utilizada por um usuário. Os intent filters podem ainda declarar, além da ação e da categoria, os tipos de dados com os quais o componente é capaz de lidar, como uma imagem, por exemplo:
<data android:mimeType="image/*" />
Com base nestas três informações (action, category e data), o Android é capaz de selecionar qual é o componente mais adequado para responder a uma Intent implícita, comparando o que foi passado na Intent com aquilo que está declarado nos intent filters dos aplicativos. Nossas aplicações podem definir intent filters com ações e categorias próprias ou fazer uso das já existentes para expor funcionalidades para as demais aplicações.