inicio

may 9, 2012
|

Cómo abrir aplicaciones en Android: Intents

Buenas, muchas veces os habreis fijado que las aplicaciones que manejais en vuestro movil al pinchar en un enlace o un botón abren vuestro navegador y van a una determinada página, os permiten compartir un enlace, llaman a un número o envian un correo. En definitiva, tienen una determinada información e invocan otras aplicaciones en vuestro móvil para que no tengais que implementar esas acciones en vuestra aplicación.


Estas llamadas se hacen con los Intent. Android las define como la descripción abstracta de una operación que va a ser llevada a cabo. O para que nos entendamos todos, los Intent sirven para llamar a Activities dentro de nuestra aplicación, o como vamos a ver hoy, fuera de ella.


Como suelo hacer en la mayoría de los casos, me hago una clase donde tengo los métodos que os voy a describir a continuación. En este caso le podemos llamar IntentManager. El primero de los métodos que veremos será como invocar a un navegador para que vaya a una url.


public static void navegateToUrl(Activity activity, String url){
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
activity.startActivity(i);
}


Como podéis ver el método es muy sencillo, se crea un nuevo intent, indicando que su tipo de acción es ACTION_VIEW, y convertimos a un objeto Uri la cadena de texto con la url y por último iniciamos la actividad. El siguiente método es para compartir un enlace a través de las redes sociales disponibles en el móvil.


public static void share(Activity activity,String linkShare, String titleShare){
Intent intent = new Intent(Intent.ACTION_SEND);

intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_SUBJECT, titleShare);
intent.putExtra(Intent.EXTRA_TEXT, linkShare);

activity.startActivity(Intent.createChooser(intent, "Compartir"));
}


En este caso la acción es ACTION_SEND, indicamos que enviamos texto, el SUBJECT será el texto que pondremos en la red social y TEXT el enlace que compartimos. Por último, iniciamos la actividad con un Intent.createChooser para seleccionar la red social y con un texto para el título de la ventana de selección.


public static void sendEmail(Activity activity, String Address){
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("plain/text");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{Address});
activity.startActivity(Intent.createChooser(emailIntent, "Enviar mail"));
}


Con el método anterior podemos enviar un correo preseleccionando para el usuario la dirección a la que enviaremos el mail. Si se quiere poner un asunto o un mensaje predefinido podemos hacerlo con las siguientes líneas:


emailIntent .putExtra(android.content.Intent.EXTRA_SUBJECT, Subject);

emailIntent .putExtra(android.content.Intent.EXTRA_TEXT, BodyText);


Otra de las acciones comunes en una aplicación es poder realizar una llamada, lo podemos hacer mediante este método. En esta ocasión la acción es un ACTION_CALL y el teléfono lo parseamos a un objeto Uri.


public static void callPhoneNumber(Activity activity,String phone) {
Intent callIntent = new Intent(Intent.ACTION_CALL);
callIntent.setData(Uri.parse("tel:"+phone));
activity.startActivity(callIntent);
}


El último de los intent que voy a mostraros va a abrir el navegador y para navegar hasta una dirección que le indiquemos.


public static void routeTo(Activity activity, String destiny){
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q="+destiny));
activity.startActivity(i);
}


En este caso la acción es un ACTION_VIEW, pero le decimos que abra el navegador parseando a un objeto Uri y añadiendo “google.navigation:q=” a nuestro destino. Los valores validos para destiny son los mismos que si buscarais algo en la web de Google Maps, pero con algunas cosillas. Si ponemos una dirección, por ejemplo: Puerta de Alcala, Madrid, España, debemos sustituir los espacios por el símbolo más (+). Podemos poner unas coordenadas GPS, pero al contrario de lo que hicimos en los capítulos de Google Maps, las coordenadas las tenemos que poner así: “43.007230,-7.556199″. Si os fijáis tienen punto decimal.

Bueno, hasta aquí llegan los ejemplos. Hay muchas más formas de utilizar los intents, y en función de lo que queráis hacer podréis lanzar vuestras aplicaciones favoritas haciendo vuestra aplicación mucho más rica en recursos y atractiva para los usuarios.
0
Las dos fichas siguientes cambian el contenido a continuación.
Técnico en Administración de Sistemas y Desarrollo de Aplicaciones. Amigo de sus amigos, y una mente inquieta que no puede dejar un ordenador de lado porque necesita programar aplicaciones Android o aplicaciones en general, además de páginas web. Nuestro programador de cabecera y espero que también el vuestro.
  • AYUDAAAAAAAA

    Hola, estoy realizando una aplicación en la cual he incluido un botón que a través de un intent abre una ActivityMaps, en principio no hay ningún error al darle a run pero una vez se ejecuta la aplicación al presionar el botón que nos lleva a esta actividad sale un error de que la aplicación se ha parado y se reinicia, ¿sabes si es algún problema del intent?

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información. ACEPTAR