【问题标题】:Images not attaching to email图片未附加到电子邮件
【发布时间】:2016-07-30 04:48:01
【问题描述】:

我正在尝试将多个图像添加到电子邮件意图中。这是我一直在使用的代码。

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

    for (int i = 0; i < form.getImageContainers().size(); i++)
        uris.add(Uri.fromFile(new File(form.getImageContainers().get(i).getImagePath())));

    final Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:"))
            .putExtra(Intent.EXTRA_EMAIL, "pdlmob@auburn.edu")
            .putExtra(Intent.EXTRA_SUBJECT, "Sample Submission (Beta Test)")
            .putExtra(Intent.EXTRA_TEXT, Html.fromHtml(buildBody()));
            .putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);

    startActivity(Intent.createChooser(emailIntent, "Send email..."));

但它没有附加任何内容,只是正文和其他所有内容。

我尝试通过用此行替换 .putParcelableArrayListExtra 来获取单个图像

    .putExtra(Intent.EXTRA_STREAM, Uri.fromFile(new File(form.getImageContainers().get(0).getImagePath())));

它确实附上了图像,所以我可以告诉存储路径的字符串没有任何问题。不幸的是,我无法循环并只为每个图像使用该行,因为它只会使用最后一个(尝试过)。我已经阅读了使用此方法的答案以及使用 Intent.ACTION_SEND_MULTIPLE 的其他答案,但这给了我一个空选择器,告诉我没有任何应用程序可以执行该操作。

为什么它不起作用?

【问题讨论】:

    标签: android image email android-intent


    【解决方案1】:

    我正在尝试将多个图像添加到电子邮件意图

    ACTION_SEND 不支持多流。 ACTION_SEND_MULTIPLE does。因此,当ACTION_SEND 应用程序尝试获取EXTRA_STREAM 时,它们要么崩溃,要么返回null,因为它们不会调用getParcelableArrayListExtra() 或同等值,因为它们期望值是Uri ,而不是 Parcelable 对象中的 ArrayList

    我已经阅读了使用此方法的答案,以及使用 Intent.ACTION_SEND_MULTIPLE 的其他答案,但这给了我一个空选择器,告诉我我没有任何可以执行该操作的应用程序。

    显然,这是因为您没有任何可以执行该操作的应用程序。仅仅因为应用程序支持ACTION_SEND 并不意味着它们必须支持ACTION_SEND_MULTIPLE

    【讨论】:

    • Gmail 不能支持多个?
    • @CodyHarness:显然不是,但如果您致电setDataAndType() 并提供您的内容的 MIME 类型,您将有助于您的事业。您可能想改为调用setType(),但这会消除您在构造函数中提供的Uri
    【解决方案2】:

    解决方案是使用ACTION_SEND_MULTIPLEsetType("text/plain"),所以我的第一行现在看起来像

        final Intent emailIntent = new Intent(Intent.ACTION_SEND_MULTIPLE).setType("text/plain")
    

    【讨论】:

      猜你喜欢
      • 2017-04-11
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      • 2013-12-29
      • 2010-10-06
      • 2016-12-29
      相关资源
      最近更新 更多