Android 以邮件形式发送PDF文件或提供应用程序直接查看文件
我的Android 4+应用程序可以创建PDF格式的不同报告。知道我想为用户提供通过邮件发送文件的选项,或在任何可以处理PDF文件的应用程序中打开文件的选项。目前我使用以下代码:Android 以邮件形式发送PDF文件或提供应用程序直接查看文件,android,pdf,android-intent,Android,Pdf,Android Intent,我的Android 4+应用程序可以创建PDF格式的不同报告。知道我想为用户提供通过邮件发送文件的选项,或在任何可以处理PDF文件的应用程序中打开文件的选项。目前我使用以下代码: Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("application/pdf"); Uri uri = Uri.parse("file://" + reportFile.getAbsolutePath()); intent.putExt
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("application/pdf");
Uri uri = Uri.parse("file://" + reportFile.getAbsolutePath());
intent.putExtra(Intent.EXTRA_STREAM, uri);
try {
startActivity(Intent.createChooser(intent, "Share PDF file"));
} catch (Exception e) {
Toast.makeText(ReportsActivity.this, "Error: Cannot open or share created PDF report.", Toast.LENGTH_SHORT).show();
}
这很好,除了只提供“发送”应用程序,如蓝牙、谷歌硬盘、电子邮件等。我安装了Acrobat Reader应用程序,当然可以查看PDF文件。但这个应用程序也只列出了“发送签名”,而没有“在阅读器中打开”或类似的东西
我认为动作\u SEND
的意思是“发送到其他应用程序”,而不是引人注目的“发送到其他地方”。我可以使用什么意图来包括“打开方式”选项
我可以使用什么意图来包括“打开方式”选项
操作视图
用于查看文件
startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(reportFile), "application/pdf")));
我认为发送意图的意思是“发送到其他应用程序”,而不是引人注目的“发送到其他地方”
不,
ACTION\u SEND
是用来发送东西的。在某些情况下,这包括“在另一个应用程序中发送给您自己”(例如发送到Google Drive),但这并不是为了查看文件。非常感谢您的提示和说明。有没有办法将这两者结合起来,让用户选择打开或发送文件?当然,我首先使用第二个对话框询问是否应该提供send选项或view选项。但这对用户来说是额外的一步。此外,在我知道是否有任何查看应用程序可用之前询问“打开或查看”是不好的…@AndreiHerford:“有没有办法将这两者结合起来,让用户选择打开或发送文件?”——我不建议这样做,因为这在其他Android应用程序中并不常见。也就是说,你可以试着做实验。“当然,我首先会使用第二个对话框询问是否应该提供发送选项或查看选项”-IMHO,每个都应该有两个单独的UI触发器,它们都没有命名为“打开”。“查看”和“共享”是正确的Android动词。可以完美地启动已安装的apv pdf reader以显示pdf文件。谢谢
startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(reportFile), "application/pdf")));