I want to attach an image with email, that image is stored in /data/data/mypacke/file.png
. How can I attach that image file programmatically? What would sample code look like?
In the top-right side of the screen, click the Compose new message button. When the new message appears, click the Attach a document to this message button (paper clip). Locate the image you want to send and select Choose File. Input the address of the user that you want to send the message.
Right-click on the photo and choose "Copy." Alternatively, highlight the photo by clicking and dragging the mouse cursor over it and then either press "Ctrl-C" on the keyboard or click "Edit," "Copy." After copying the photo, move to the email message in which you want to embed it.
Use Intent.ACTION_SEND to hand the image off to another program.
File F = new File("/path/to/your/file.png");
Uri U = Uri.fromFile(F);
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("image/png");
i.putExtra(Intent.EXTRA_STREAM, U);
startActivity(Intent.createChooser(i,"Email:"));
I've done exactly what Blumer did and ran into permissions problems unless the file was on the sdcard or unless the file has MODE_WORLD_READABLE access.
Worth noting that if the file is located in internal storage and set to MODE_PRIVATE
(which it should be) then you should set the file to be readable by other programs before launching the intent. Using the code from the answer,
File F = new File("/path/to/your/file.png");
F.setReadable(true, false); // This allows external program access
Uri U = Uri.fromFile(F);
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("image/png");
i.putExtra(Intent.EXTRA_STREAM, U);
startActivity(Intent.createChooser(i,"Email:"));
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With