我试图将图像附加到电子邮件,但当本地电子邮件客户端打开时,它没有附加。
Gmail客户端显示“无法附加文件”消息。
雅虎电子邮件客户端没有显示任何警告,但也没有附加图像。
我正在使用联想k6和android 7.0设备进行测试。
这是我用来将图像附加到电子邮件的代码:

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

也尝试过“图像/jpeg”,但没有成功。
文件uri如下所示:
file:///storage/emulated/0/DCIM/Camera/IMG_20171015_170852.jpg

我甚至尝试将图像移动到FileSystemManager.getInstance().getAppHomePath()下的位置。
但还是没用。
即使我使用捕获对象来创建一个新的图像或者从画廊中选择一个存在的图像,结果也是一样的。但如果我从电子邮件客户端内手动附加一个图像,一切都会按预期工作。
android日志没有那么大帮助。
10-20 12:14:15.695 32049 32049 E Gmail:添加附件时出错
10-20 12:14:15.695 32049 32049电子邮件:dsh:无法创建本地附件
10-20 12:14:15.695 32049 32049 e gmail:at dsi.a(源文件:132)
10-20 12:14:15.695 32049 32049 e gmail:at cmd.a(源文件:1840)
10-20 12:14:15.695 32049 32049 e gmail:at cmp.run(源文件:4)
10-20 12:14:15.695 32049 32049 e gmail:at cmd.a(源文件:665)
10-20 12:14:15.695 32049 32049 e gmail:at cmd.a(源文件:422)
10-20 12:14:15.695 32049 32049 e gmail:at cmd.n(源文件:536)
10-20 12:14:15.695 32049 32049 e gmail:at cmd.oncreate(源文件:181)
10-20 12:14:15.695 32049 32049 e gmail:com.google.android.gm.composeactivitygmail.oncreate(源文件:40)
我已经没有选择了。
有什么建议吗?

最佳答案

您添加的附件不正确。getAttachments()用于返回现有文件URI和MIME类型对,而不是添加附件的最佳方式。
试试这个:

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

另外,检查uri路径并确保它是正确的,因为我可以看到这个file:///
我还建议您将文件放在应用程序主目录中。

07-26 01:40