Android SDK MMS

7

有人知道如何通过Android SDK以编程方式发送MMS吗?任何版本的SDK都可以,只需要知道从哪里开始。我知道如何发送/接收短信,现在需要在发送之前添加一张图片到消息中。


似乎已经有一个答案发布了:https://dev59.com/KnA85IYBdhLWcg3wCe9Z#2973016 - user466664
我正在这里做类似的事情!!! https://dev59.com/j-o6XIcBkEYKwwoYORwV - Etienne Lawlor
3个回答

3
这对我很有帮助。
Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.putExtra("sms_body", "some text"); 
sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(url));
sendIntent.setType("image/png"); 

传递给Uri.parse方法的URL应该是访问媒体库的形式,例如content://media/external/images/media/23。
来自jtribe系列文章:jtribe

忘了说,我不想启动消息应用程序。 MMS 应该在后台发送。完整的故事如下: 我有一个桌面应用程序,它通过 TCP sockets 发送数据到手机。手机上的 socket 服务器接收流,解析数据并确定要执行的操作。在 SMS 的情况下,它会组合新的 SMS,并在后台发送消息。现在,我需要知道如何在后台发送 MMS。我已经成功地从客户端/服务器(手机)流式传输照片,只需要能够发送 MMS 而不需要请求用户输入。 - user160231
很遗憾,没有提供用于发送短信的 API;只有您已经看到的“SmsManager”类。 - Christopher Orr
有没有办法将电话号码传递给它? - unresolved_external

3
在Android中发送MMS与发送短信一样简单。以下是示例代码:
Intent i = new Intent(Intent.ACTION_SEND);
i.putExtra("address","7404357000");
i.putExtra("sms_body","hello..");
i.putExtra(Intent.EXTRA_STREAM,Uri);
i.setType("image/png");
startActivity(i);
这里的Uri可以是以下任意一个:
Uri uri = Uri.parse("content://media/external/images/media/1");

Uri uri = Uri.parse("file://mnt/sdcard/test.jpg");

Uri uri = Uri.parse("file://"+Environment.getExternalStorageDirectory()+"/test.jpg");
请确保“test.jpg”存在于SD卡中或可用。你还需要在清单文件中授予权限。
<uses-permission android:name="android.permission.RECEIVE_MMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />

这是模拟器上的最终输出结果。
这段代码在设备上也能正常工作。
enter image description here

以下是链接


0
我自己也很想得到这个答案。目前API中似乎存在一个巨大的漏洞,支持短信却不支持彩信,这太荒谬了。
你可以尝试利用MMS应用程序本身;其中有发送MMS的代码。你可以在Android源代码库中查看源代码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接