从代码发送带有位图的MMS

时间:2017-08-01 20:30:24

标签: java android

我想通过单击片段中的按钮发送Bitmap和一些文本,我想让用户在他的消息传递应用中选择联系人/号码。

我怎么能这样做?

编辑:

在尝试某些内容后,我在消息应用中遇到了错误(模拟器上的Messenger):

  

Messenger无法加载附件。

以下是我使用的代码:

String path = Environment.getExternalStorageDirectory().getPath() + "/Improov/LatestShare.png";
File file = new File(path);
FileOutputStream out = null;
try {
    out = new FileOutputStream(file);
    bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
} catch (Exception e) {
    e.printStackTrace();
} finally {
    try {
        if (out != null) {
            out.close();
        }
    } catch (IOException e) {
         e.printStackTrace();
    }
}
Uri photoURI = FileProvider.getUriForFile(getContext(), getContext().getApplicationContext().getPackageName() + ".com.example.mous.improov_flash", file);
Intent intent = new Intent(Intent.ACTION_SEND);
intent.putExtra("sms_body", message);
intent.putExtra(Intent.EXTRA_STREAM, photoURI);
intent.setType("image/jpeg");
getActivity().startActivity(intent);

1 个答案:

答案 0 :(得分:0)

如果您想发送彩信,

首先,您应该将您的位图存储在SD卡中,然后使用以下意图发送彩信,

获取存储位图的Uri

Uri uri = [uri for your stored bitmap];

Intent intent = new Intent(Intent.ACTION_SEND);
inetnt.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.putExtra("sms_body", [Text to be send]);
intent.putExtra(Intent.EXTRA_STREAM, uri);
intent.setType("image/jpeg");
getActivity.startActivity(intent);

有关详细信息,请阅读此official doc