发送带有位图对象的电子邮件作为Android中的附件?

时间:2011-01-23 17:16:46

标签: android email attachment

我想将位图作为附件发送到邮件中。图像不存储在SDCARD中或设备中的任何位置。位图对象在运行时创建,应作为附件发送。

2 个答案:

答案 0 :(得分:9)

然后,您必须将位图保存到SD卡,然后将其附加到电子邮件中(我猜你是know how to do so)。

为什么有必要将其保存到SD卡?那是因为电子邮件应用程序必须读取它将要附加的文件;因此,您必须将路径和文件名传递给电子邮件客户端。与任何其他应用程序一样,电子邮件客户端只能访问存储在其自己的私人目录或SDCard中的文件。

答案 1 :(得分:4)

/* Return Drawable Object from Specified imageUrl In Web

 @imageUrl : image Url in Web

 */

try {
/// Getting image from Web
    InputStream is = (InputStream) new URL(imageUrl).getContent();
    // storing image from stream
    drawable = Drawable.createFromStream(is, "srcName");
    is.close();
    // converting drawable object to Bitmap to store in content providers of Media
    Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap();
    // Store image in Devise database to send image to mail
    String path = Images.Media.insertImage(getContentResolver(), bitmap,"title", null);
    Uri screenshotUri = Uri.parse(path);
    final Intent emailIntent1 = new Intent(     android.content.Intent.ACTION_SEND);
    emailIntent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    emailIntent1.putExtra(Intent.EXTRA_STREAM, screenshotUri);
    emailIntent1.setType("image/png");
    startActivity(Intent.createChooser(emailIntent1, "Send email using"));

}
catch(Exception e) { }