Tip Android #09: algunos Intents útiles


VERSIONES

  1. 11/02/2013 (Primera publicación)
  2. 07/07/2014:
    • Eliminado Spotify (ya no funciona)
    • Añadida aplicación de ejemplo
  3. 21/03/2015: Google Maps

  4. android tip

    El título lo dice todo, intents sin respuesta esperada (código de barras, fotografía…) para realizar operaciones con otras apps. En el caso de solicitarse abrirse una aplicación en concreto no olvidar capturar ActivityNotFoundException que se lanzará si la app no se encuentra instalada.

    Abrir dirección web

    //la url debe incluir siempre el protocolo
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
    

    Buscar en google

    Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
    intent.putExtra(SearchManager.QUERY, query); 
    startActivity(intent);
    

    Compartir/enviar con

    Intent intent = new Intent(android.content.Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "asunto");//se usará por ejemplo para email
    intent.putExtra(Intent.EXTRA_TEXT, "contenido del mensaje");
    startActivity(Intent.createChooser(intent, "Compartir usando"));
    

    compartir usando

    Buscar en Youtube con la app oficial

    Intent intent = new Intent(Intent.ACTION_SEARCH);
    intent.setPackage("com.google.android.youtube");
    //la cadena a buscar
    intent.putExtra("query", "zz top i need you tonight");
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    try
    {
      startActivity(intent);
    } 
    catch (ActivityNotFoundException e)
    {
      //la app no está instalada, mostrar por ejemplo un AlertDialog
    }
    

    youtube

    Agregar contactos con la app de contactos

    Intent contactIntent = new Intent(Intent.ACTION_INSERT);
    
    contactIntent.setType(ContactsContract.Contacts.CONTENT_TYPE);
    contactIntent.putExtra(ContactsContract.Intents.Insert.NAME,"Richard Parker");
    contactIntent.putExtra(ContactsContract.Intents.Insert.EMAIL,"mail@mail.com");
    contactIntent.putExtra(ContactsContract.Intents.Insert.PHONE,"666-777");
    
    startActivity(contactIntent);
    

    add contact from intent

    Guardar en gestores de eventos

    Intent intent = new Intent(Intent.ACTION_EDIT);
    intent.setType("vnd.android.cursor.item/event");
    intent.putExtra("beginTime", momentoInicio.getTime());
    intent.putExtra("allDay", false);
    intent.putExtra("endTime", momentoFin.getTime() + 36000);
    intent.putExtra("title", "Cita médica");
    intent.putExtra("description", "Acudir a la cita médica con el resultado de las pruebas");
    startActivity(Intent.createChooser(intent, "Seleccione una aplicación"));		
    

    evento 1

    Abrir aplicación en Google Play

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setData(Uri.parse("market://details?id=com.danielme.muspyforandroid"));
    startActivity(intent);		
    

    Reproducir multimedia

    Igual que el caso de una página web, procurando indicar siempre el MimeType correcto. La Uri puede ser
    una url remota o bien un archivo (file:///sdcard/MUSICA/cancion.mp3)

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.parse("http://ejemplo.com/song.mp3"),"audio/mpeg");
    startActivity(intent);			
    

    multimedia

    Enviar Email

    Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:mail@gmail.com"));
    emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject");
    emailIntent.putExtra(Intent.EXTRA_TEXT, "body");
    startActivity(Intent.createChooser(emailIntent, "Seleccione una aplicación"));			
    

    Abrir en Google Maps punto o ruta

    //navigation
    String uri = String.format(Locale.getDefault(), "http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f",37.424307,-122.095023, 37.422867,-122.0932849);
    //marker
    //String uri = String.format("http://maps.google.com/maps?q=%f,%f",37.424307,-122.095023);
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
    intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");
    try
    {
       startActivity(intent);
    }
    catch (ActivityNotFoundException e)
    {
       Toast.makeText(this, R.string.not_available, Toast.LENGTH_SHORT).show();
    }
    

    Si se solicita un único punto («q») se mostrará con un marker en el mapa; con los parámetros saddr y daddr se puede solicitar una ruta.

    android google map navigation intent

    El proyecto completo para Eclise ADT se encuentra en Github. Para más información sobre cómo utilizar GitHub, consultar este artículo.

    << TIPS ANDROID

3 comentarios sobre “Tip Android #09: algunos Intents útiles

  1. hola muchas gracias por este post, tengo una duda, donde puedo ver o leer aserca de que otros intents puedo lanzar, espero puedas ayudarme saludos

    1. Estos Intents los he recopilado de código que he ido haciendo y los he encontrado en Google, Stackoverlow…que yo sepa no hay una especie de «catálogo» parecido salvo la documentación oficial de Android sobre el Intent en sí mismo.

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.