Intent Filters

Filtros de intención
- Si la activity NO tiene filtros, sólo se puede ejecutar mediante intents explícitos.
- Sólo se tiene en cuenta DATA, ACTION y CATEGORY
- Se definen en el androidManifest.xml
ACTION & CATEGORY
- Para especificarlas en nuestro código usamos constantes al estilo: ACTION_DIAL, ACTION_EDIT, CATEGORY_BROWSABLE
- En el manifest se hace de forma diferente.
- Necesitamos definir la ruta entera.
- Category: android.intent.category.BROWSABLE
- Action: android.intent.action.DIAL
Resolución del filtro
- Se comprueba el filtro siempre que se ejecuta un intent implícito.
- Se deben cumplir las condiciones especificadas.
<action> ... </action>
- Se pueden definir varias o ninguna.
- Si es vacío se bloquean todos los filtros.
- Si la action del filtro coincide con alguna de las de nuestro intent pasa el filtro.
- Si el intent no tiene acciones también pasa el filtro.
<category> ... </category>
- Se pueden definir varios o ninguna.
- Para pasar el filtro TODAS las categorías del intent deben estar en el filtro, si no se bloquea el intent.
- Un intent sin categorías siempre pasa el filtro.
- Excepción: Cuando es llamado por el sistema, en ese caso el sistema lo trata como si tuviera al menos la categoría DEFAULT.
<data> ... </data>
- Se pueden definir varias o ninguna.
- Nos define un tipo de dato, mediante URI o tipo MIME.
- Paso del filtro:
- URI no definida & MIME type no definido en manifest: OK
- URI definida & tipo no definido & solo definida URI en manifest: OK
- URI no definida & tipo definido & solo definido tipo en manifest: OK
- Definido Tipo y URI o sólo URI con tipo implícito (tipo file:// o content://) y definido de la misma forma en manifest: OK
- Los demás casos el filtro se bloquea.
Intent Filters
By marcos_perez
Intent Filters
- 638