如何使用ACTION_SEND发送图片或视频文件?

时间:2015-06-29 17:11:44

标签: android image video bitmap

我想使用ACTION_SEND分享图片或视频文件。所以基本上当用户点击图像并选择"共享图像/视频时#34;它应该发送所选的图像或选择的视频。

这是我正在使用的代码:

if (filep != null) {

      }
      File sending=new File(filep);
      Intent intent = new Intent();
      intent.setAction(android.content.Intent.ACTION_SEND);
      intent.setDataAndType(Uri.fromFile(sending),getMimeType(sending.getAbsolutePath()));
      intent.putExtra(Intent.EXTRA_STREAM, sending);
      startActivity(Intent.createChooser(intent , "Share"));
    }

  private String getMimeType(String url)
    {
        String parts[]=url.split("\\.");
        String extension=parts[parts.length-1];
        String type = null;
        if (extension != null) {
            MimeTypeMap mime = MimeTypeMap.getSingleton();
            type = mime.getMimeTypeFromExtension(extension);
        }
        return type;

因此,在测试时,我需要使用哪个应用程序与whatsapp,Facebook,电子邮件等分享。然后在选择其中任何一个时,它会说"共享失败,请再试一次。 #34;我似乎无法弄清楚它为什么不起作用。但是,我使用相同的代码来显示ACTION_VIEW全屏图像或视频文件,这看起来效果很好,但不是共享。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

EXTRA_STREAM必须是Uri,而您没有传递Uri。使用Uri.fromFile()构建Uri

另外,将setDataAndType()替换为setType(),替换为ACTION_SEND does not use the data aspect of the Intent