android - Problemas para compartir texto e imagen combinados con SHARE INTENT en Twitter
android-intent (2)
Especifique el tipo MIME también para el texto. "text/plain"
es el tipo de datos de texto MIME. Intente utilizar "*/*"
como MIME, para que pueda enviar cualquier tipo de datos genéricos.
También intente cambiar ACTION_SEND
por ACTION_SEND_MULTIPLE
que se especializó en la entrega de datos múltiples.
Más información sobre ACTION_SEND_MULTPLE y manejo de tipos MIME:
http://developer.android.com/reference/android/content/Intent.html
Quiero darle al usuario la posibilidad de compartir una imagen y un texto con Twitter y Facebook.
En realidad, mi código puede lanzar la intención de compartir de Android y si el usuario selecciona Facebook, todo funciona bien, la Imagen se adjunta y el texto se muestra en el cuerpo del nuevo estado.
Pero algo está mal en Twitter, si solo pongo una Imagen todo funciona bien, la imagen es detectada por Twitter y automáticamente cargada en twipic, luego Twitter publica el enlace de la imagen en el tweet. Pero si pongo una imagen y un texto, entonces, Twitter no detecta la imagen y solo pone el texto en el tweet, la imagen es ignorada. ¿Qué está mal?
este es mi código:
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri screenshotUri = Uri.parse("file:///sdcard/image.jpg");
sharingIntent.setType("image/*");
sharingIntent.putExtra(Intent.EXTRA_TEXT, "Body text of the new status");
sharingIntent.putExtra(Intent.EXTRA_STREAM, screenshotUri);
startActivity(Intent.createChooser(sharingIntent, "Share image using"));
Todavía puede intentarlo con ACTION_SEND
, sin usar ACTION_SEND_MULTIPLE
.
ACTION_SEND_MULTIPLE
dio ACTION_SEND_MULTIPLE
resultado un force close, cuando traté de crear nuevas intenciones para compartir en Gmail, G +, etc.
Esto funcionó perfecto para mí:
Intent shareIntent = new Intent(Intent.ACTION_SEND);
Uri uri = Uri.parse("file:///sdcard/image.jpg");
shareIntent.setType("*/*");
shareIntent.putExtra(Intent.EXTRA_TEXT, "Body text of the new status");
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
return shareIntent;