gpt4 book ai didi

android - 使用 Android ACTION_SEND 通过 Messenger 和 Facebook 发送图像

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:19 24 4
gpt4 key购买 nike

在我的应用程序中,我希望能够使用 ACTION_SEND Intent 通过电子邮件、Facebook 或 Messenger (MMS) 发送保存在我本地 SD 卡上的图片。使用我拥有的代码,我可以成功地将图片作为附件通过电子邮件发送,但是当我选择 Facebook 时,我收到错误消息,“加载照片时发生错误”,当我尝试选择 Messenger 时,它说,“抱歉,您不能添加这个将图片添加到您的消息中”。

这是我的代码:

File pic =  new File(Environment.getExternalStorageDirectory()+ File.separator + "images" + File.separator + "picture.jpg");
Uri pngUri = Uri.fromFile(pic);
Intent picMessageIntent = new Intent(android.content.Intent.ACTION_SEND);
picMessageIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
picMessageIntent.setType("image/jpeg");
picMessageIntent.putExtra(Intent.EXTRA_STREAM, pngUri);
startActivity(Intent.createChooser(picMessageIntent, "Send your picture using:"));

有谁知道我需要更改什么才能使此代码与 Messenger 和 Facebook 一起使用?

最佳答案

要使用 MMS 发送图像,您必须获取媒体提供商的 URI,文件路径中的 URI 不起作用(我以前遇到过这个问题)。对于 Facebook,我不知道如何使用 ACTION_SEND 发送图片,因为我使用 Facebook SDK 发布状态和发送照片(这是一种更好的方法,因为你不需要依赖之前安装过 facebook 的手机).

protected void sendMMS(final String body, final String imagePath) {
MediaScannerConnectionClient mediaScannerClient = new MediaScannerConnectionClient() {
private MediaScannerConnection msc = null;
{
msc = new MediaScannerConnection(getApplicationContext(), this);
msc.connect();
}

public void onMediaScannerConnected() {
msc.scanFile(imagePath, null);
}

public void onScanCompleted(String path, Uri uri) {
Intent sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra("sms_body", body);
sendIntent.putExtra(Intent.EXTRA_STREAM, uri);
sendIntent.setType("image/png");
startActivity(sendIntent);

msc.disconnect();
}
};
}

关于android - 使用 Android ACTION_SEND 通过 Messenger 和 Facebook 发送图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6893788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com