我知道,当您有有效的文件路径和URI时,可以发送电子邮件附件。
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("plain/text");
ArrayList<Uri> uris = new ArrayList<Uri>();
String[] filePaths = new String[] {image1 Path,image2 path};
for (String file : filePaths) {
File fileIn = new File(file);
Uri u = Uri.fromFile(fileIn);
uris.add(u);
}
if ( !(app_preferences.getString("email", "") == null || app_preferences.getString("email", "").equals(""))) {
emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {app_preferences.getString("email", "")});
}
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject name");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Please find the attachment.");
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(Intent.createChooser(emailIntent, "Email:"));
我将图像存储在数据库中(作为BLOB)。(我知道这被认为不是一个好的做法,但我有足够的理由这样做)。
我知道可以从DB中选择图像,将其存储在SD中,发送电子邮件,然后从SD卡中删除图像,但我不寻找这种解决方案。
那么,是否可以在没有任何实际文件路径的情况下附加位图(因为它存储在我的数据库中)。
是的,您可以
将blob转换为字节数组,然后使用JavaMail的ByteArrayDataSource进行附加。