Cómo compartir datos en Android

Compartir datos en Android desde nuestra aplicación es muy sencillo. La mayor parte del trabajo, se la lleva el sistema operativo. En el siguiente ejemplo se muestra como compartir texto plano.


Intent intent = new Intent(Intent.ACTION_SEND);

 intent.setType("text/plain");
 intent.putExtra(Intent.EXTRA_SUBJECT, subject);
 intent.putExtra(Intent.EXTRA_TEXT, text);
 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

 this.startActivity(Intent.createChooser(intent,  "Compartir en" ));

Lo primero que debemos hacer es instanciar un objeto de la clase Intent como si quisieramos iniciar una nueva actividad, pero con la salvedad de que en este caso indicamos en el constructor que deseamos que una actividad del tipo ACTION_SEND. Luego simplemente resta indicar que queremos compartir texto plano, y agregarle dos extras al intent, uno para como tema y otro como el texto a compartir. Finalmente iniciamos la actividad, que nos mostrará el famoso pop-up para seleccionar a qué aplicación deseamos compartir. Se listarán todas las aplicaciones de nuestro móvil que permiten recibir datos (facebook, whatsapp, twitter, etc). Luego de aquí en más queda a cuenta del usuario.

No todas las aplicaciones están configuradas para recibir ambos parámetros, muchas de ellas sólo recibirán el segundo parámetro. Whatsapp en una de las aplicaciones que reciben ambos.

Sólo estas 6 líneas de código permiten compartir datos hacia otras aplicaciones, lo que demuestra el poder de este sistema operativo. Más adelante veremos cómo compartir imágenes y archivos multimedia.


8 thoughts on “Cómo compartir datos en Android

  1. Hola hay alguna forma de pasarle el numero telefonico destino directamente a whatsapp para evitar el paso de tener que seleccionar el contacto de la lista?

    1. Verdaderamente no lo se, deberías buscarlo. Lo que si se que se puede hacer es indicarle directamente a que aplicación querés compartirle los datos en vez de lanzar la ventana para elegir la app, pero he leído que no es una buena práctica. En esta link dan una buena solución. Lo del número te lo debo. Suerte con eso! Gracias por comentar

  2. hola leandro, lo felicito muy buenos tutoriales, me han servido bastante, pero en este me surge una duda,

    en esta parte del codigo: intent.putExtra(Intent.EXTRA_TEXT, text);

    donde ponemos el texto que queremos compartir, lo podemos cambiar por un id? es decir algo como tener un textview con id y ese id ponerlo alli para que se vea ? muchas gracias.

    1. Hola jhon, en la función putExtra(), el primer parámetro indica q qremos compartir texto, por lo q alli podes colocar directamente un string (“contenido a compratir”), o si tenes definido un textview de nombre texto1, le colocas texto1.getText().

  3. Buenas, para hacer lo contrario, qué tendría que hacer? Es decir, para que desde otra app al darle a compartir aparezca mi app y envie los datos a la mia.

  4. Hola, buen tutorial, lo logré hacer haciendo que el fab abriera otra activity pero quiero que con solo presionar el fab me de las opciones del chooser, el startactivity me da error, Gracias por el tutorial

Responder

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. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s