viernes, 2 de octubre de 2015

Compartir en redes sociales en Android Studio



Hola, en este post trata de como implementar el codigo en android para poder compartir a partir de una aplicacion nativa en android a las redes sociales, mediante estas 4 lineas de codigo ya podremos compartir con las redes sociales de nuestros smartphone.

Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_TEXT, "El mejor blog de android http://javaheros.blogspot.pe/");
startActivity(Intent.createChooser(intent, "Share with"));
 
los resultados son los siguientes:


Si desea compartir directamente a una red social es el siguiente codigo:

    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_TEXT, "El mejor blog de android http://javaheros.blogspot.pe/");
    intent.setPackage("com.facebook.katana");
    startActivity(intent);
 


Para esecificar la red social donde compartir debe cambiar en la tercera linea de codigo a:
intent.setPackage("com.whatsapp");

o la red social que usted desee.
intent.setPackage("com.twitter.android");

Si sucede algun error no duden en comentar, ojo este codigo funciona con internet, su aplicacion debe tener permisos de internet en el manisfest.
<uses-permission android:name="android.permission.INTERNET" />

el codigo lo pueden descargar desde aqui



24 comentarios:

  1. Muchas gracias! funciona de 10!!

    ResponderEliminar
  2. Funciono para mi..
    Excelente.

    ResponderEliminar
  3. funciono muy bien. gracias, pero como hago para que el boton no comparta sino que lleve a kien intale a app a mi link de facebook. coloque esto y se cierra la app intent.putExtra(Intent.EXTRA_TEXT, "El mejor blog de android http://javaheros.blogspot.pe/");
    intent.setPackage("com.facebook.katana");
    startActivity(intent); y probé también com.android.browser

    ResponderEliminar
  4. ya encontré la solución, la dejo por aca por si alaguen la necsita...

    Uri uri = Uri.parse("https://www.facebook.com/profile.php?id=100010867685579&fref=ts");
    Intent intent = new Intent(Intent.ACTION_VIEW, uri);
    startActivity(intent);

    ResponderEliminar
    Respuestas
    1. alguna idea de como podria hacer con las otras redes sociales? gracias de antemano

      Eliminar
  5. Hola si quisiera compartir una imagen de mi app, por ejemplo un screenshoot de mi app en fb o quisiera compartir un archivo desde mi app a una red social como puedo hacerlo ?

    ResponderEliminar
    Respuestas
    1. Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.flag_of_germany);
      //Se guarda la imagen en la SDCARD
      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
      icon.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
      File f = new File( Environment.getExternalStorageDirectory() + File.separator + "tmp" + File.separator + "peter.jpg");
      try {
      f.createNewFile();
      FileOutputStream fo = new FileOutputStream(f);
      fo.write(bytes.toByteArray());
      } catch (Exception e) {
      Log.e("ERROR", e.getMessage() );
      }
      //compartir imagen
      Intent share = new Intent(Intent.ACTION_SEND);
      share.setType("image/jpeg");
      share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
      share.putExtra(Intent.EXTRA_TEXT, "Mi imagen");
      startActivity(Intent.createChooser(share, "Compartir imagen"));

      Eliminar
  6. Ya lo hice si lo puedes ver aqui, https://javaheros.blogspot.pe/2016/11/compartir-imagen-desde-una-app-en.html

    ResponderEliminar
  7. Muchas gracias por el aporte, la verdad es que eres un CRACK.

    ResponderEliminar
  8. Buen día, gracias por el post, me gustaría saber si hay una manera de saber si se compartió con éxito o no, ya que puedo dar el botón compartir y me abre las aplicaciones donde se puede compartir, pero puedo presionar el botón atrás y nunca compartí en ningún aplicativo. Muchas Gracias

    ResponderEliminar
  9. Tendrías que programar el onbackpressed en la actividad. Un Saludo

    ResponderEliminar
  10. cómo podría hacer para que se comparta como texto lo que el usuario de la app haya seleccionado de un radiobutton o un checkbox?
    y que al compartirlo se haga en segundo plano.
    gracias

    ResponderEliminar
  11. Hola necesito lo mismo pero con JavaScript, alguien me pueda ayudar por favor gracias...

    ResponderEliminar
  12. no me salio, le doy en fb, wpp o twitter y se cierra la aplicacion, ayudaaa

    ResponderEliminar
  13. Hola. Gracias por la explicación.

    Ahora estoy intentando compartir una foto con un link en Facebook e instagram, pero no consigo hacer las dos cosas a la vez, hasta ahora solo he conseguido compartir foto o texto. Alguna idea?

    Gracias por adelantado.

    ResponderEliminar
    Respuestas
    1. Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.flag_of_germany);
      //Se guarda la imagen en la SDCARD
      ByteArrayOutputStream bytes = new ByteArrayOutputStream();
      icon.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
      File f = new File( Environment.getExternalStorageDirectory() + File.separator + "tmp" + File.separator + "peter.jpg");
      try {
      f.createNewFile();
      FileOutputStream fo = new FileOutputStream(f);
      fo.write(bytes.toByteArray());
      } catch (Exception e) {
      Log.e("ERROR", e.getMessage() );
      }
      //compartir imagen
      Intent share = new Intent(Intent.ACTION_SEND);
      share.setType("image/jpeg");
      share.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f));
      share.putExtra(Intent.EXTRA_TEXT, "Mi imagen");
      startActivity(Intent.createChooser(share, "Compartir imagen"));

      Eliminar
    2. share.setPackage("com.whatsapp");

      Eliminar
  14. HOLA BUENAS NOCHES COMO SE COMPARTIRÍA EL CORREO ELECTRÓNICO O GMAIL GRACIAS

    ResponderEliminar
  15. Hola, tengo una pregunta, de que manera podria hacer esto pero implementandolo en un Fragment, lo que pasa es que los botones los tengo declarados en el xml del fragment, y el código lo puse en el MainActivity como esta en el tutorial, no se si asi sea lo correcto, pero al momento de correrlo la aplicación se cierra.

    ResponderEliminar
  16. Ya no funciona lo de compartir imagen

    ResponderEliminar
  17. Como se comparten las imágenes desde mi app a las redes sociales? las que están ya no funcionan, si alguien sabe le agradezco XD

    ResponderEliminar
  18. Es un hecho conocido que ILLUMINATI consiste en Multi
    Millonarios, multimillonarios que tienen una gran influencia con respecto a global
    asuntos y planificación de un nuevo orden mundial. Muchos líderes mundiales, presidentes, primeros ministros, realeza y altos ejecutivos son miembros de ILLUMINATI. siga los pasos para sobresalir en la vida. tendrás numerosos beneficios, por PRIMERA VEZ EN LA HISTORIA, estamos abriendo nuestras puertas a los que creen. Si desea unirse a ILLUMINATI, inscríbase Texto: leovincey08@gmail.com o whatsapp +2349033667873 texto ahora

    ResponderEliminar