Utilizando Intents implícitos para crear actividades
Antes de comenzar la actividad de desarrollo vamos a definir de que se trata, cuando establecemos que utilizaremos intents implícitos en la solución mobile de Android.
Los intents implícitos se utilizan cuando no se especifica un componente exacto a utilizar, en su lugar, se especifica la funcionalidad requerida a través de una acción (por ejemplo, 'ver', 'hacer búsqueda', 'marcar') y un dato (por exemplo, la URL de la página que se desea ver, el número que se desea marcar), y Android debe determinar el mejor componente para su utilización. Esa es una de las características más interesantes de Android, porque permite que una aplicación desencadene un “Intent” sin conocer exactamente cuál será la aplicación o componente que lo recibirá, y por eso puede interactuar con otras aplicaciones de manera muy flexible
El filtro más comunmente utilizado es una acción, y la acción más común tiene que ver con el modo ACTION_VIEW.
El filtro más comunmente utilizado es una acción, y la acción más común tiene que ver con el modo ACTION_VIEW.
Los pasos básicos para lanzar una actividad utilizando un “intent implícito” serían:
Los intents son muy utilizados en todos los desarrollos mobile que se generen en Android, como les comenté podemos optar por utilizarlos de forma explicita o implícita, la segunda de las opciones es la seleccionada para este articulo.
- Declarar el “intent” con la acción apropiada apropiada por ejemplo, ACTION_VIEW, ACTION_WEB_SEARCH, etc.
- Adjuntar información adicional necesaria según la acción del intent.
- Lanzar el intent (y dejar que el sistema encuentre la Actividad más adecuada).
Los intents son muy utilizados en todos los desarrollos mobile que se generen en Android, como les comenté podemos optar por utilizarlos de forma explicita o implícita, la segunda de las opciones es la seleccionada para este articulo.
Tecnología
- Android 2.3.3
- Entorno de desarrollo Eclipse (Helios)
- Entorno de desarrollo Eclipse (Helios)
Actividad simple utilizando intents implícitos
En primer lugar, vamos a generar una actividad simple que nos permita reaccionar a un evento. La idea, es una interfaz grafica simple con un botón que permita realizar el lanzamiento de diversas opciones de intents útiles, que podemos requerir para un desarrollo mobile.
Tendremos que resolver estás situaciones:
- Navegar en un sitio Web
- Abrir los contactos de mi directorio y navegar en ellos.
- Iniciar una llamada telefonica en un número especifico.
- Realizar un busqueda en Google pasando una cadena de búsqueda.
- Comando de voz
En cada una de las actividades declaradas, utilizaremos un manejador del click de un botón para lanzar el “intent”.
Tendremos que resolver estás situaciones:
- Navegar en un sitio Web
- Abrir los contactos de mi directorio y navegar en ellos.
- Iniciar una llamada telefonica en un número especifico.
- Realizar un busqueda en Google pasando una cadena de búsqueda.
- Comando de voz
En cada una de las actividades declaradas, utilizaremos un manejador del click de un botón para lanzar el “intent”.
Button btnLanzar = (Button)findViewById(R.id.button1); btnLanzar.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { } }); |
Utilizaremos “startActivity(intent)” para iniciar la actividad, esta operación pertenece al paquete “android.app” particularmente a la clase “Activity”, esta operación inicia una actividad, pero como característica fundamental es necesario comentar, de la misma no recibiremos información al cerrarse.
Puede ampliar esta información en el siguiente vínculo oficial Ver. (Inglés)
Como parámetro la operación “startActivity” genéricamente llevará un “intent” y algun otro dato. Veamos la estructura de un “intent”.
El “intent” pertenece al paquete “android.content”. Se puede decir que un “intent” es una descripción abstracta de una operación que se realizará. Su uso más importante es el inicio de las actividades, en el que se puede considerar como el pegamento entre las actividades en la soluciones mobile Android
Sus principales componentes son:
- Una Acción
- Datos (expresado como URI)
Puede ampliar esta información en el siguiente vínculo oficial Ver. (Inglés)
Puede ampliar esta información en el siguiente vínculo oficial Ver. (Inglés)
Como parámetro la operación “startActivity” genéricamente llevará un “intent” y algun otro dato. Veamos la estructura de un “intent”.
El “intent” pertenece al paquete “android.content”. Se puede decir que un “intent” es una descripción abstracta de una operación que se realizará. Su uso más importante es el inicio de las actividades, en el que se puede considerar como el pegamento entre las actividades en la soluciones mobile Android
Sus principales componentes son:
- Una Acción
- Datos (expresado como URI)
Puede ampliar esta información en el siguiente vínculo oficial Ver. (Inglés)
Navegar por un sitio Web
En este ejemplo utilizaremos la creación de un nuevo “intent” con la acción “ACTION_VIEW” y como datos pasaremos la dirección web “http://www.google.com/”.
Code 2 - Lanzamiento de un “intent” para navegar por un sitio web.
Un aspecto importante a remarcar en este escenario es, no estamos necesariamente lanzando el Browser del sistema, lo que estamos haciendo es decirle al sistema que queremos ver la pagina “http://www.google.com”. El sistema tomará la decisión de cual es la aplicación más adecuada, que puede ser, el Browser del dispositivo o quizás otra aplicación que el usuario tenga instalado, podría ser otro Browser (Firefox, por ejemplo). Por esa razón este intent se llama implícito. No estamos especificando una aplicación o componente especifico.
startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com/"))); |
Un aspecto importante a remarcar en este escenario es, no estamos necesariamente lanzando el Browser del sistema, lo que estamos haciendo es decirle al sistema que queremos ver la pagina “http://www.google.com”. El sistema tomará la decisión de cual es la aplicación más adecuada, que puede ser, el Browser del dispositivo o quizás otra aplicación que el usuario tenga instalado, podría ser otro Browser (Firefox, por ejemplo). Por esa razón este intent se llama implícito. No estamos especificando una aplicación o componente especifico.
Operar los contactos de mi directorio
En este ejemplo utilizaremos la creación de un nuevo “intent” con la acción “ACTION_VIEW” y como datos pasaremos “content://contacts..” para realizar la operación de visualización de contactos de mi directorio.startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("content://contacts/people/"))); |
A remarcar “content://contacts/people/" es una URI que representa la colleción de contactos del directorio.
Iniciar una llamada telefonica
En este ejemplo utilizaremos la creación de un nuevo “intent” con la acción “ACTION_VIEW” y como datos pasaremos “tel:73647832” esto colocará la aplicación en el escenario de llamada telefonica para confirmar la llamada al número representado.startActivity(new Intent(Intent.ACTION_VIEW,Uri.parse("tel:34247"))); |
Realizar un busqueda en Google
En este ejemplo utilizaremos la creación de un “intent” pero lo realizaremos de forma separada inicialmente para luego poder insertar una Query al mismo. Hay algunos intents que necesitarán más que una acción y una URI. Esas datos adicionales se llaman "extras" y se los puede añadir con “Intent.putExtra” como muestra el ejemplo del Code 5.Intent intent= new Intent(Intent.ACTION_WEB_SEARCH ); intent.putExtra(SearchManager.QUERY, "Bortolotti"); startActivity(intent); |
Lanzamiento de un comando de voz
En este ejemplo utilizaremos la creación de un nuevo “intent” con la acción “ACTION_VOICE_COMMAND”startActivity(new Intent(Intent.ACTION_VOICE_COMMAND)); |
Referencias
- Sitio Oficial Android, http://developer.android.com/reference/, 2011.- Manning Android in Action 2nd.Edition - W. Frank Ableson, Robi Sen, Chris King, 2011.
- The Android Developers Cookbook - Steele and To, 2010.
hola muchas gracias, me sirvio de mucho el tuto es lo que estaba buscando saludos
ResponderBorrar