122 Uso de Inten
nes y Fillros de Intencién
1 Siclesquema no es especificado, el host es ignorado.
= Sil host no es expecificado, el puerto es ignorado,
= Sicl esquema y el host no es especificado, el path es ignorado,
Cuando la URI de la intencién se compara a la URI de la expecificacién del filtro, se
‘comparan sélo las partes incluidas en el filzo, Por ejemplo:
1 Siun filtro especifica slo un esquema, todas las URIs con ese esquema, pasarén
lft.
«= Sicl filto especifica un esquema y una autoridad pero ningsin path, todas las
URIs con el mismo esquema y autoridad pasarén el filtro, independiente de sus
paths.
‘= Siun filtro especifica un esquema, una autoridad y un path, s6lo las URIs con el
‘mismo esquema, autoridad y path pasarén el filtro.
Las pruebas de datos, comparan las URI y los tipos MIME en Ia intencién con los
URI y los tipos MIME especificados en los filtos, cumpliendo las siguientes reglas:
+ Una intencién que no contiene URI ni tipos MIME, pasa el filtro siempre y cuando
1 filtro no especifique ninguna URI ni tipo MIME,
= Una intencién que contiene URI pero no tipos MIME, pasard la prueba sélo si la
URT coincide con el formato contenido en el filtro, y siempre y cuando el filtro no
cespecifique tipo MIME alguno,
‘= Una intencién que contiene sélo tipos MIME, pasaré el filtro siempre y cuando
coincidan con los definidos en el filtro, y dicho fill no especifique ningin
foramto de URL
1 Una intencién que contiene URI y MIME pasaréel filtro sies que el tipo MIME
definido coincide con alguno de los especificados en el filtco, ademés la URI debe
ccoincidir con el formato definido en el filtro.
La citima regla refleja la necesidad de la actividad de tratar data desde un fchero 0
desde algin proveedor de contenido.
Por ejemplo, el siguiente eédigo indica mediante un elemento de datos al sistema
que el componente puede obtener datos de tipo imagen desde un proveedor de contenido
¥y mostrarlo:
1]
2
«|
Debio a que la mayoria de data es suministrada por los proveedores de contenido es
aque estos filtros que especitican los tipos de datos pero no las URI son los mis comunes.
4.6 Laboratorio - Intents
1, Cree una nueva aplicacién, para este ejemplo se lamars Intents Android, se eligié
Ia API23 y ademés un layout vaeto para la actividad principal.46 Laboratorio - Intents 123
2. Primero modifique el fichero strings.xml para que no se presenten errores en las
vistas de la aplicacién,
Intents AndreidLlamarUbicarNavegar
3. En la vista de la actividad principal agregue un botén con las siguientes caracte-
isticas
4. Ahora se procederé a agregar la funcionalidad del bot6n, la cual deberd realizar
‘una llamada a un miimero cargado y enviado a la intencién, para esto ditfjase al
método onCreate() y agregue las siguientes lineas de cédigo:
Button btn_llamar = (Button) findViewByTd(R.id.
ben_call);
btn_llamar.setOnClickListener (new View
OnclickListener() (
Qoverride
public void onClick (View view) (
Uri number = Uri
parse ("tel
996522055");
Intent callintent =
new Intent (Intent
‘ACTION_DIAL,
number) ;
startactivity (
callintent);
i:124 Uso de Inten
nes y Fillros de Intencién
5. Bn el cédigo de tratamiento del botén, se instancia un objeto de Ia clase Uri para
interpretar el comando de marcado,
6. Compile la aplicacién y haga la prueba del efecto al momento de presionat el
bot6n de lamar,
7. Ahora se procederi a crear un bot6n para lanzar la aplicacién que ubique una
direcciGn, para esto agregue un botén més ala vista de le actividad:
1]
8. Luego se procederé a agregar Ia funcionalidad, esto lo haré en la clase MainActi-
vity’
1] Button ben_tecation = (Button) findViewsyId(R.id.
bbtn_lecation) ;
btn_location. setOnClickListener (new View
OnclickListener() (
‘ Qoverride
‘ public void onClick (View view) (
‘ Uri location = Uri
parse ("geo:0, 07.
Universidad+
Privadatde+Tacna
| #Granada,+Tacna”
Ne
, Intent mapintent
new Intent (Intent
ACTION_VIEW,
location);
: startactivity (
mapintent) ;
of 5
9. Compile la aplicacién y observe el resultado, si esta realizande el despliegue sobre
su mévil, no habré ningin inconveniente, en caso se realice sobre el emulador