我想用电子邮件附加图片,该图片存储在/data/data/mypacke/file.png
中。如何以编程方式附加该图像文件?样本代码会是什么样的?
答案 0 :(得分:25)
使用Intent.ACTION_SEND将图像移交给另一个程序。
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:"));
答案 1 :(得分:3)
我完成了Blumer所做的事情并遇到了权限问题,除非该文件位于SD卡上或文件具有MODE_WORLD_READABLE访问权限。
答案 2 :(得分:2)
值得注意的是,如果文件位于内部存储中并设置为MODE_PRIVATE
(它应该是),则应在启动intent之前将文件设置为其他程序可读。使用答案中的代码,
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:"));