我正在尝试将图片附加到电子邮件中,但是当本地电子邮件客户端打开时,它没有附加。
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)
我的选项已经用完了。 有什么建议吗?
答案 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..."));