Estoy perdiendo mucho tiempo, tratando de compartir una imagen jpeg simple trabajando a través del uso compartido de Intención.compartir foto a través de Intent (Facebook y compañía)
El más importante, como siempre, es Facebook, y como de costumbre, no funciona.
Intent shareIntent = new Intent(Intent.ACTION_SEND);
Uri picUri = Uri.parse("http://someserver.com/somepic.jpg");
shareIntent.setType("image/jpeg");
shareIntent.putExtra(Intent.EXTRA_STREAM, picUri);
shareIntent.putExtra(Intent.EXTRA_TEXT, someString);
startActivity(Intent.createChooser(shareIntent, "some text..."));
El selector se abre muy bien, Facebook también se abre y se me hace inicio de sesión, pero luego me dice que updoad falló. También probé Flicker y Mail, y todos fallaron. Luego trató de escribir la imagen al archivo local y enviar desde allí, también fracasaron:
Drawable dr = ImageLoader.getDrawable(url);
Bitmap bmp = ((BitmapDrawable)dr).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.JPEG, 80, stream);
byte[] data = stream.toByteArray();
FileOutputStream ostream;
try {
ostream = this.openFileOutput("pic.jpeg", Context.MODE_WORLD_READABLE);
ostream.write(data);
} catch (Exception e) {
e.printStackTrace();
}
Uri picUri = Uri.fromFile(new File("pic.jpeg"));
shareIntent.putExtra(Intent.EXTRA_STREAM, picUri);
no tengo ni idea de si lo hago correctamente, no lo han hecho antes.
Mi último intento fue simplemente enviar una cadena HTML con la imagen incluida como etiqueta img. Pero Facebook parece no manejar el tipo "text/html", por lo que no es una opción. Estoy seguro de que solo necesita unas pocas líneas de código. ¿Pero cuáles?
edición
me olvidó la línea
shareIntent.putExtra(Intent.EXTRA_STREAM, picUri);
en el primer fragmento de código. Estaba allí cuando lo intenté, tampoco funcionó. No ha dormido demasiado ...
¿Alguna vez encontró una forma razonable de compartir una imagen desde una URL? – cimnine
Hola didi_X8, ¿Has encontrado una solución a este problema? Como estoy atascado también – Elshaer