【问题标题】:How to attach multiple images to an email?如何将多个图像附加到电子邮件?
【发布时间】:2013-03-06 07:49:53
【问题描述】:

我正在尝试将多张图片附加到电子邮件中。

我已经尝试了下一个代码,但我不知道我做错了什么。

我需要通过您将看到的整数数组调用图像并将它们附加到电子邮件中。

一些类看起来像这样:

Integer[] images = {
        R.drawable.image1,
        R.drawable.image2,
        R.drawable.image3,
        R.drawable.image4 };

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch(v.getId()){

    case R.id.bSendEmail:

        Intent emailintent2 = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
        emailintent2.setType("plain/text");
        emailintent2.putExtra(Intent.EXTRA_EMAIL, emailaddress2);
        emailintent2.putExtra(Intent.EXTRA_SUBJECT, corsub);
        emailintent2.putExtra(Intent.EXTRA_TEXT, message2);

        ArrayList<Uri> uris = new ArrayList<Uri>();

        uris.add(Uri.parse("android.resource://" + getPackageName() + "/" + images[0]));
        uris.add(Uri.parse("android.resource://" + getPackageName() + "/" + images[1]));
        uris.add(Uri.parse("android.resource://" + getPackageName() + "/" + images[2]));
        uris.add(Uri.parse("android.resource://" + getPackageName() + "/" + images[3]));

        emailintent2.putExtra(Intent.EXTRA_STREAM, uris);
        startActivity(emailintent2);

     break;

【问题讨论】:

标签: android image email android-intent


【解决方案1】:

坏消息。根本不支持。

您是否考虑过创建附件的 ZIP 存档并附加存档?

(注意:即使这对我来说目前还不够好,但许多人似乎能够忍受它。)

【讨论】:

  • 一个 ZIP 对我不好,我需要通过电子邮件将图像发送给一个人,并且我需要任何收到电子邮件的人都获得图像的附件。
  • 如果您的收件人不喜欢打开 ZIP 存档,并且如果这真的很重要,我将通过电子邮件应用程序从代码发送格式正确的多部分 MIME 消息。电子邮件应用程序在正确设置正文和附件的 MIME 类型以及合理处理附件方面是一个麻烦(不要忘记在一个月左右后删除它们!)。祝你好运。
【解决方案2】:

使用

emailintent2.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

而不是

emailintent2.putExtra(Intent.EXTRA_STREAM, uris);

使用文件

private String root = Environment.getExternalStorageDirectory().getPath()
            + Tags.DIRECTORY_PATH;

 path = new ArrayList<String>();

            File f = new File(root);

            File[] files = f.listFiles();

            if (!root.equals(root))

            {

                item.add(root);

                path.add(root);

                item.add("../");

                path.add(f.getParent());
            }
            for (int i = 0; i < files.length; i++)

            {

                File file = files[i];

                path.add(file.getPath());

                if (file.isDirectory())

                    item.add(file.getName() + "/");

                else

                    item.add(file.getName());


  ArrayList<Uri> uris = new ArrayList<Uri>();
            for (String file : path) {
                File fileIn = new File(file);
                Uri u = Uri.fromFile(fileIn);
                uris.add(u);
            }

【讨论】:

  • 它确实有效,但是我发送的图像没有“.png”扩展名,你能告诉我如何添加扩展名吗?顺便谢谢。
  • @RobertoZuniga 请向我们提供信息,您可以使用哪些电子邮件应用程序来确认这是有效的。 SO 充满了与电子邮件意图相关的“它有效”公告,这些公告仅适用于某些电子邮件应用程序和/或版本。谢谢。
  • 抱歉,暂时我相信它可以工作,发生的事情是发送的图像没有“.png”,如果我在最后添加它,尝试发送时会出错电子邮件。
  • 你需要改变类型 emailintent2.setType("plain/text"); to setType("image/*");
  • 我已经这样做了:emailintent2.setType("image/*");还有 uris.add(Uri.parse("android.resource://" + getPackageName() + "/" + images[0]+".png"));但它没有用。
猜你喜欢
  • 1970-01-01
  • 2010-10-06
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
相关资源
最近更新 更多