我正在尝试通过我的应用中的数据库通过ACTION_SEND发送电子邮件。一切正常,所有带有用户详细信息的字段都使用html在电子邮件正文中正确格式化。然而,当我需要发送一个图像(使用Android上的标准内置电子邮件客户端)我得到一个吐司显示"无法附加文件"
我搜索并尝试了各种解决方案,但没有一个能帮助我。
所以这就是我所拥有的:
Intent messageIntent = new Intent(android.content.Intent.ACTION_SEND);
String aEmailList[] = {"user@example.com", "user1@example.com"};
messageIntent.putExtra(android.content.Intent.EXTRA_EMAIL, aEmailList);
messageIntent.putExtra(Intent.EXTRA_CC, new String[]{"user2@example.com", "user3@example.com"});
messageIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
messageIntent.setType("text/html");
messageIntent.setType("image/png");
messageIntent.putExtra(android.content.Intent.EXTRA_TEXT, message);
Log.v(getClass().getSimpleName(), "simageUri=" + Uri.parse("file://"+ image));
messageIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+ image));
startActivity(messageIntent);
}
现在,image是文件保存在我的数据库中的位置。我尝试过image.getAbsolutePath
但是这会导致空指针异常
在我的String.xml中,我必须收到电子邮件的正文。
<string
name="feedbackmessagebody_format">
<![CDATA[
<html>
<head>
<style>
table {
border-collapse: collapse;
}
td, th {
border: 1px solid black;
padding: 3px;
}
</style>
</head>
<body>
<table>
<col width="300">
<tr>
<th>Field</th>
<th>Description</th>
</tr>
<tr>
<td><b>Image: </b></td>
<td>%22$s</td>
</tr>
</table>
</body>
</html>
]]></string>
%22 $ s是我在电子邮件正文中的字段数,这是指向
final ImageView feedbackField19 = (ImageView) findViewById(R.id.imageA);
String feedback22 = feedbackField19.getDrawable().toString();
不确定我在这里缺少什么?
答案 0 :(得分:0)
String recepientEmail = ""; // either set to destination email or leave empty
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:" + recepientEmail));
intent.putExtra(Intent.EXTRA_SUBJECT,"email subject");
intent.putExtra(Intent.EXTRA_TEXT,message);
intent.putExtra(Intent.EXTRA_STREAM,filePath);
startActivity(intent);