将没有任何实际路径(存储在数据库中)的图像附加到通过共享意图通过电子邮件发送



我知道,当您有有效的文件路径和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进行附加。

相关内容

  • 没有找到相关文章

最新更新