我的 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();
}
这工作得很好,除了只提供“发送”应用程序,如蓝牙、Google Drive、电子邮件等。我安装了 Acrobat Reader 应用程序,它当然可以查看 PDF 文件。但这个应用程序也只列出了“发送以请求签名”,而不是“在阅读器中打开”或类似的东西。
我以为ACTION_SEND
意图意味着“发送到其他应用程序”,而不是严格的“发送到其他地方”。我可以使用什么意图来包含“打开方式”选项?
我可以使用什么意图来包含“打开方式”选项?
ACTION_VIEW
用于查看文件。
startActivity(new Intent(Intent.ACTION_VIEW).setDataAndType(Uri.fromFile(reportFile), "application/pdf")));
我认为 ACTION_SEND 意图意味着“发送到其他应用程序”,而不是严格的“发送到其他地方”。
No, ACTION_SEND
是用来送东西的。这包括在某些情况下“在另一个应用程序中发送给自己”(例如发送到 Google 云端硬盘),但它特别不适用于查看文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)