如何使用Intent.ACTION_SEND将图像发送到Android上的Facebook Messenger?

时间:2014-07-27 22:37:54

标签: android facebook android-intent bitmap facebook-messenger

以下代码

final Intent sendImage = new Intent(Intent.ACTION_SEND);
sendImage.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
sendImage.putExtra(Intent.EXTRA_STREAM, theUri);
sendImage.setType("image/png");
startActivity(Intent.createChooser(sendImage, "Send Image using "));

允许使用任何应用程序(例如Dropbox,Gmail,普通消息/短信,Kik)发送图像,但不允许使用Facebook Messenger应用程序发送图像。

每当我选择Facebook Messenger应用程序作为用于发送照片的应用程序时,我得到一个"抱歉,Messenger现在无法处理此文件类型"异常。

Uri来自这种方法

File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File imageFile = new File(path, "Yogamoji!" + ".png");
FileOutputStream fileOutPutStream = new FileOutputStream(imageFile);
BitmapFactory.decodeStream(theAssets.open("emojis/" + fileName)).
compress(Bitmap.CompressFormat.PNG, 100, fileOutPutStream);

fileOutPutStream.flush();
fileOutPutStream.close();

return Uri.parse("file://" + imageFile.getAbsolutePath());

1 个答案:

答案 0 :(得分:1)

我有类似的代码可行。唯一的区别是:

sendImage.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(uriFile));

使用

File uriFile = new File(Environment.getExternalStorageDirectory()+folderName+imageName);