Reputation: 1867
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?
Upvotes: 5
Views: 8153
Reputation: 386
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:"));
Upvotes: 2
Reputation: 6126
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.
Upvotes: 3
Reputation: 5035
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:"));
Upvotes: 25