
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.
Fuente: Nosinmiubuntu
0 comentarios:
Publicar un comentario