附带pdf的电子邮件

时间:2013-01-16 13:11:26

标签: android android-intent

我必须打开我的应用程序电子邮件(G-mail),它必须附加到一些pdf

pdf位于应用程序创建的文件夹中。 该文件夹未在SD卡上创建。

我的平板电脑没有SD卡。 我的平板电脑没有SD卡。 我的平板电脑没有SD卡。

如何发送这些pdf用于电子邮件?

if(android.os.Environment.getDataDirectory().equals(android.os.Environment.MEDIA_MOUNTED))
cacheDir=new File(android.os.Environment.getDataDirectory(),"MyAPP");



//String FILENAME = "testejan1.pdf";
//String string = "hello world!";



//File file = new File (Environment.getDataDirectory().getPath(), "/MyAPP/"+"testejan1.pdf");
//Uri path = Uri.fromFile(file);

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("application/pdf");
//shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_EMAIL, new String[] { "flip_novidade@hotmail.com" });
shareIntent.putExtra(Intent.EXTRA_SUBJECT, "Material de apoio do mês de " + mesclicado);
shareIntent.putExtra(Intent.EXTRA_TEXT, "Você esta recebendo um super material de visitação médica");
//shareIntent.setDataAndType(path, "application/pdf"); 
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file:///MyAPP/"+"testejan1.pdf"));
//shareIntent.setType("file/*");
startActivity(shareIntent);

2 个答案:

答案 0 :(得分:0)

i.setType("application/pdf");
 i.putExtra(Intent.EXTRA_STREAM, Uri.parse("pdf path"));

答案 1 :(得分:0)

您的大多数代码看起来都是正确的。两件事:

在应用程序的本地文件系统中创建PDF文件时,需要使用MODE_WORLD_READABLE标志创建它。这是其他应用程序能够打开PDF所必需的。

然后使用Uri.fromFile为您的文件获取Android URI(您可以使用注释代码进行此操作)。

请注意MODE_WORLD_WRITEABLE被视为安全措施不佳,因为设备上的任何应用都可以访问您的PDF文件。更好的解决方案是创建ContentProvider并使用content: URI将PDF数据提供给外部应用程序。这使您可以控制是否允许或拒绝对PDF文件的任何单独加载进行访问(但这需要更多工作)。