发送PDF文件作为邮件或提供应用程序直接查看该文件

时间:2014-09-04 19:05:55

标签: 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.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文件。但是这个应用程序也只列出"发送签名"而不是"在阅读器中打开"或者像这样的东西。

我认为ACTION_SEND意图意味着"发送到其他应用"并没有严格地发送到其他地方"。我可以使用什么意图包括"打开"选项也是?

1 个答案:

答案 0 :(得分:14)

  

我可以使用什么意图来包含“打开方式”选项?

ACTION_VIEW用于查看文件。

startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(reportFile), "application/pdf")));
  

我认为ACTION_SEND意图意味着“发送到其他应用”而不是严格“发送到其他地方”。

不,ACTION_SEND用于发送内容。这包括“在某些情况下发送到自己的另一个应用”(例如,发送到Google云端硬盘),但它不是专门用于查看文件。