我的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
意图意味着"发送到其他应用"并没有严格地发送到其他地方"。我可以使用什么意图包括"打开"选项也是?
答案 0 :(得分:14)
我可以使用什么意图来包含“打开方式”选项?
ACTION_VIEW
用于查看文件。
startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(reportFile), "application/pdf")));
我认为ACTION_SEND意图意味着“发送到其他应用”而不是严格“发送到其他地方”。
不,ACTION_SEND
用于发送内容。这包括“在某些情况下发送到自己的另一个应用”(例如,发送到Google云端硬盘),但它不是专门用于查看文件。