0

我正在通过以下代码发送带有日志结果的邮件:

    Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
    emailIntent.setType("text/plain");
    emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, emailAddressList);
    emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Android Log");
    emailIntent.putParcelableArrayListExtra(android.content.Intent.EXTRA_STREAM, uris);
    try {
        startActivity(Intent.createChooser(emailIntent,"Send..."));
        finish();
    }
    catch (android.content.ActivityNotFoundException e) {
        new AlertDialog.Builder(SendActivity.this)
        .setIconAttribute(android.R.attr.alertDialogIcon)
        .setTitle(R.string.cannotSend)
        .setMessage(R.string.appNotFound)
        .setPositiveButton(R.string.ok, null)
        .show();
    }

模拟器中的电子邮件应用程序(trget Jelly Bean)是这个:

在此处输入图像描述

发送时会显示此内容,其中包含目的地、主题和附件:

在此处输入图像描述

oubox 显示邮件有附件:

在此处输入图像描述

但是收到的消息没有附件:

在此处输入图像描述

我唯一的猜测是电子邮件应用程序失败了,但我不知道这是否是我的错,我是否可以纠正它,或者我是否可以在 AVD 中安装另一个邮件客户端来完成这项工作。

PS:顺便说一句,在 AVD 上发送这些邮件真的很慢,当我测试撰写和发送纯文本邮件时,它的发送速度要快得多。

编辑
我有一个想法,可能是因为附件来自临时文件而导致问题吗?它们链接到邮件而不是复制,当电子邮件应用程序发送它们时,它们不再存在?

attachment = File.createTempFile("logs", "txt");
out = new FileOutputStream(attachment);
out.write(logs.getBytes());
out.close();
uris.add(Uri.fromFile(attachment));

attachment = File.createTempFile("sysinfo", "txt");
out = new FileOutputStream(attachment);
out.write(getSystemInfo());
out.close();
uris.add(Uri.fromFile(attachment));
4

1 回答 1

0

好吧,这绝对是模拟器问题。

我安装了英特尔的 HAXM 虚拟机并使用英特尔映像创建了一个新的 AVD,它不仅运行速度更快,而且它可以立即发送邮件和附件,没有问题。

编辑
我发现,在真实设备上测试时,这是一个真正的问题,这篇文章非常有帮助

于 2013-02-24T09:15:59.397 回答