代号1:将图像附加到电子邮件消息失败

时间:2017-10-20 09:40:09

标签: android image email codenameone

我正在尝试将图片附加到电子邮件中,但是当本地电子邮件客户端打开时,它没有附加。

Gmail客户端会显示 无法附加文件 消息。

Yahoo电子邮件客户端没有显示任何警告,但它也没有附加图像。

我正在使用联想K6和Android 7.0设备进行测试。

这是我用来将图片附加到电子邮件中的代码:

Message m = new Message(content);
m.getAttachments().put(imgUri, "image/png");

尝试使用“image / jpeg”但无济于事。

文件URI如下所示:

file:///storage/emulated/0/DCIM/Camera/IMG_20171015_170852.jpg

我甚至尝试将图片移到FileSystemManager.getInstance().getAppHomePath()下的某个位置 但它仍然没有用。

即使我使用Capture对象创建新图像或从图库中选择现有图像,结果也是一样的。但是,如果我从电子邮件客户端手动附加图像,一切都按预期工作。

Android日志没有用处。

  

10-20 12:14:15.695 32049 32049 E Gmail:添加附件时出错

     

10-20 12:14:15.695 32049 32049 E Gmail:dsh:无法创建本地附件

     

10-20 12:14:15.695 32049 32049 E Gmail:at dsi.a(SourceFile:132)

     

10-20 12:14:15.695 32049 32049 E Gmail:at cmd.a(SourceFile:1840)

     

10-20 12:14:15.695 32049 32049 E Gmail:at cmp.run(SourceFile:4)

     

10-20 12:14:15.695 32049 32049 E Gmail:at cmd.a(SourceFile:665)

     

10-20 12:14:15.695 32049 32049 E Gmail:at cmd.a(SourceFile:422)

     

10-20 12:14:15.695 32049 32049 E Gmail:at cmd.N(SourceFile:536)

     

10-20 12:14:15.695 32049 32049 E Gmail:at cmd.onCreate(SourceFile:181)

     

10-20 12:14:15.695 32049 32049 E Gmail:at com.google.android.gm.ComposeActivityGmail.onCreate(SourceFile:40)

我的选项已经用完了。 有什么建议吗?

2 个答案:

答案 0 :(得分:3)

您正在错误地添加附件。 getAttachments()用于返回现有文件URI和mime类型对,而不是添加附件的最佳方式。

试试这个:

m.setAttachment(imgUri);
m.setAttachmentMimeType(Message.MIME_IMAGE_PNG);

另外,请检查URI路径并确保其正确,因为我看到file:///

我还建议您将文件放在app主目录中。

答案 1 :(得分:0)

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"abc@gmail.com"});
i.putExtra(Intent.EXTRA_SUBJECT, "attachment");
i.putExtra(Intent.EXTRA_TEXT   , "PFA");
i.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(destinationFile));//image file

startActivity(Intent.createChooser(i, "Send mail..."));