How to attach a Bitmap when launching ACTION_SEND intent How to attach a Bitmap when launching ACTION_SEND intent android android

How to attach a Bitmap when launching ACTION_SEND intent


    String pathofBmp = Images.Media.insertImage(getContentResolver(), bitmap,"title", null);    Uri bmpUri = Uri.parse(pathofBmp);    final Intent emailIntent1 = new Intent(     android.content.Intent.ACTION_SEND);    emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    emailIntent1.putExtra(Intent.EXTRA_STREAM, bmpUri);    emailIntent1.setType("image/png");

Where bitmap is your bitmap object which must be store in SD Card. and then use that Uri for shareimage.


You must first save the bitmap to a file. you can save it to the app's cache

private void shareBitmap (Bitmap bitmap,String fileName) {    try {        File file = new File(getContext().getCacheDir(), fileName + ".png");        FileOutputStream fOut = new FileOutputStream(file);        bitmap.compress(CompressFormat.PNG, 100, fOut);        fOut.flush();        fOut.close();        file.setReadable(true, false);        final Intent intent = new Intent(     android.content.Intent.ACTION_SEND);        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);        intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));        intent.setType("image/png");        startActivity(intent);    } catch (Exception e) {        e.printStackTrace();    }}


Try this it may help you:

ByteArrayOutputStream bos = new ByteArrayOutputStream();  yourbitmapimagename.compress(CompressFormat.PNG, 0, bos);Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.setType("*/*"); intent.putExtra(Intent.EXTRA_STREAM, bos.toByteArray());startActivity(intent);