发送电子邮件附件时遇到问题。
首先:我使用iText5将一些文本标记为PDF。 PDF存储在我的资产文件夹中:
AssetManager am = getAssets();
InputStream fs;
FileOutputStream fOut ;
try
{
fs = am.open("RFA2_10_11.pdf");
PdfReader pdfReader = new PdfReader(fs);
Log.d("pdfreader", pdfReader.getFileLength()+" kello");
fOut = openFileOutput("DocStamped.pdf",
MODE_WORLD_READABLE);
PdfStamper stamper = new PdfStamper(pdfReader, fOut);
PdfContentByte canvas = stamper.getOverContent(1);
ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase("Stefano Molle"), 250, 710, 0);
ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase("4 Saint Pappins Road, Glasnevin, Dublin 11"), 250, 645, 0);
stamper.close();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (DocumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
因此,创建的PDF存储在我的应用程序的根文件目录中。
我需要将保存的DocStamped.pdf文件作为附件发送到电子邮件中:
String emailTo = "example@example.com";
//lets send the email
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE);
emailIntent.setType("text/plain");
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{emailTo});
ArrayList<Uri> uris = new ArrayList<Uri>();
File file = new File(getFilesDir()+"/"+"DocStamped.pdf");
Log.d("file", file.getAbsolutePath());
Uri uri = Uri.fromFile(file);
uris.add(uri);
emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
// emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(Intent.createChooser(emailIntent, "Send mail..."));
现在这是我发送电子邮件的代码。但我遇到了麻烦。在应用程序上它说有一个附件,但当我在浏览器中检查我的电子邮件帐户时,我写的文本没有附件。
任何想法家伙为什么附件没有发送?
答案 0 :(得分:0)
您的代码适用于我,只需进行一些修改:
ArrayList<Uri>
我使用单个Uri,就像这样: Uri URI = Uri.parse("file://" + file.getAbsolutePath());
emailIntent.putExtra(Intent.EXTRA_STREAM, URI);
答案 1 :(得分:-1)
如果您使用的是gmail客户端,则附件路径必须以mnt/sdcard
开头。