I want to give the user the possibility to share a Image and a Text with Twitter and Facebook.
Actually my code can launch Android's share intent and if the user selects Facebook, all works fine, the Image is attached and the text is shown on the body of the new status.
But something is wrong with Twitter, if i only put a Image all works fine, the image is detected by twitter and automatically uploaded to twipic, then twitter posts the link of the image on the tweet. But if i put a image and a text, then, twitter doesn't detect the image and it only puts the text on the tweet, the image is ignored. What is wrong?
this is my code:
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"));
Specify MIME type also for the text.
"text/plain"
is the type of text data MIME. Try using"*/*"
as MIME, so you can send any generic data type.Also try changing
ACTION_SEND
toACTION_SEND_MULTIPLE
which specialized for delivering multiple data.More info about ACTION_SEND_MULTPLE and handling MIME types:
http://developer.android.com/reference/android/content/Intent.html
You can still try with
ACTION_SEND
, without using theACTION_SEND_MULTIPLE
.ACTION_SEND_MULTIPLE
resulted in a force close, when I tried to create new intents for sharing to Gmail, G+, etc.This worked perfect for me: