0

我必须打开我的申请电子邮件(G-mail),它必须附加到一些 pdf 文件中

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

我的平板电脑没有 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);
4

2 回答 2

0
i.setType("application/pdf");
 i.putExtra(Intent.EXTRA_STREAM, Uri.parse("pdf path"));
于 2013-01-16T13:31:01.910 回答
0

您的大部分代码看起来都正确。两件事情:

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

然后用于Uri.fromFile获取文件的 Android URI(您在注释代码中有此内容)。

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

于 2013-01-16T13:47:06.593 回答