I'm trying to share an image trough a share intent like this:
Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("image/png");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, application.getString(R.string.app_name));
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT,application.getString(R.string.app_share_message));
File image = new File(Uri.parse("android.resource://" + C.PROJECT_PATH + "/drawable/" + R.drawable.icon_to_share).toString());
sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(image));
shareMe(sharingIntent);
The share intent fires correctly and I choose Gmail, everything runs as expected until I press send. I receive a notification "Unable to show attach", and the e-mail is sent without it... Why?
Thanks for your time.
//open a share intent chooser (Will show installed app from which i can share //images)
private void shareImage(String imagePath, String quoteByPerson, String quoteToShare) {
First, there is no guarantee that any given other app will be able to support an
android:resource//
Uri
. You will have greater compatibility sharing a file on external storage or using aContentProvider
.That being said, replace:
with:
An
android:resource://
is not aFile
, and probably you are messing up yourUri
by converting to aFile
and then back to aUri
.BitmapDrawable bitmapDrawable = (BitmapDrawable)ImageView.getDrawable(); Bitmap bitmap = bitmapDrawable.getBitmap();
In my case I used: