VERSIONES
- 11/02/2013 (Primera publicación)
- 07/07/2014:
- Eliminado Spotify (ya no funciona)
- Añadida aplicación de ejemplo
- 21/03/2015: Google Maps
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"));
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 }
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);
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"));
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);
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.
El proyecto completo para Eclise ADT se encuentra en Github. Para más información sobre cómo utilizar GitHub, consultar este artículo.
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
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.
Great, thanks for sharing this blog article.Much thanks again. Fantastic.