Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以邮件形式发送PDF文件或提供应用程序直接查看文件_Android_Pdf_Android Intent - Fatal编程技术网

Android 以邮件形式发送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

我的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文件。但这个应用程序也只列出了“发送签名”,而没有“在阅读器中打开”或类似的东西

我认为
动作\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")));