我想使用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
全屏图像或视频文件,这看起来效果很好,但不是共享。
有人可以帮忙吗?
答案 0 :(得分:1)
EXTRA_STREAM
必须是Uri
,而您没有传递Uri
。使用Uri.fromFile()
构建Uri
。
另外,将setDataAndType()
替换为setType()
,替换为ACTION_SEND
does not use the data aspect of the Intent
。