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);