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.

Comments are closed.