通过Android上我的应用的whatsapp分享pdf文件

时间:2016-10-14 07:48:21

标签: android pdf whatsapp

我尝试将pdf文件从我的应用程序发送到whatsapp,这是代码, 但缺少一些东西!!

它打开了whatsapp,我可以选择一个联系人,但它说“共享失败”!

代码

String PLACEHOLDER = "file:///android_asset/QUOT_2016_10(test).pdf";
File f = new File(PLACEHOLDER);
Uri uri = Uri.fromFile(f);

Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.putExtra(Intent.EXTRA_TEXT, "hi");
share.setPackage("com.whatsapp");

share.putExtra(Intent.EXTRA_STREAM, uri);
share.setType("application/pdf");

activity.startActivity(share);

3 个答案:

答案 0 :(得分:2)

我想出了问题,如果有人遇到同样的问题,这就是答案。问题是我试图从资产文件夹中打开pdf,这样做不起作用,如果试图从下载文件夹中打开pdf,它就可以了。请参考以下代码了解最终正确的方法:

File outputFile = new File(Environment.getExternalStoragePublicDirectory
        (Environment.DIRECTORY_DOWNLOADS), "ref Number from Quotation.pdf");
Uri uri = Uri.fromFile(outputFile);

Intent share = new Intent();
share.setAction(Intent.ACTION_SEND);
share.setType("application/pdf");
share.putExtra(Intent.EXTRA_STREAM, uri);
share.setPackage("com.whatsapp");

activity.startActivity(share);                                                

答案 1 :(得分:0)

 File outputPath= new File(Environment.getExternalStorageDirectory() + "/MyPdf/example.pdf");//change with your path

    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setType("application/pdf");
    Uri fileUri = FileProvider.getUriForFile(getApplicationContext(),
            getPackageName() + ".fileprovider", outputPath);
    shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
    shareIntent.putExtra(Intent.EXTRA_STREAM, fileUri);
    startActivity(Intent.createChooser(shareIntent, "Share it"));

答案 2 :(得分:0)

这在技术上是错误的,如果有人有 WhatsApp 业务或想在 Gmail 上共享文件,那么使用它怎么办...

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(Intent.EXTRA_TEXT, _text);
shareIntent.putExtra (Intent.EXTRA_STREAM, Uri.parse(_file));
startActivity(Intent.createChooser( shareIntent, "Share"));

在这里你只需要添加文本和文件 您附加的文字将成为 Gmail 的主题,如果您在 WhatsApp 上分享图片,则文字将成为图片标题