You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何生成各类测试MMS并发送至Android模拟器用于应用调试?

生成并发送各类MMS到Android模拟器的方法

一、通过ADB直接操作模拟器的MMS内容提供者

Android模拟器的MMS数据存储在content://mms和content://mms/part两个Content URI下,无需真实发送流程,直接通过adb插入记录即可快速测试各类MMS。

1. 创建MMS主记录并获取ID

执行以下adb命令插入一条MMS主记录,返回的ID需记下来(示例中假设为123),后续附件将通过该ID关联:

adb shell content insert --uri content://mms --bind thread_id:i:1 --bind msg_box:i:1 --bind read:i:0 --bind date:s:$(date +%s000)
  • thread_id:i:1:固定对话线程ID,方便归类测试内容
  • msg_box:i:1:指定为收件箱(1=收件箱,2=发件箱)
  • read:i:0:标记为未读状态
  • date:s:$(date +%s000):使用当前毫秒级时间戳

2. 添加不同类型的MMS附件(内嵌/引用)

每个附件对应content://mms/part中的一条记录,通过mid字段关联到主MMS ID。

(1)内嵌MP3音频

先将本地MP3文件推送到模拟器存储:

adb push your_audio.mp3 /sdcard/mms_test/audio.mp3

再插入音频附件记录:

adb shell content insert --uri content://mms/part --bind mid:i:123 --bind part_type:s:audio/mpeg --bind data:/sdcard/mms_test/audio.mp3 --bind text:s:内嵌MP3测试 --bind disp:s:inline
  • part_type:s:audio/mpeg:MP3对应的MIME类型
  • disp:s:inline:标记为内嵌内容,若设为attachment则作为附件展示

(2)内嵌视频文件

推送视频文件到模拟器:

adb push your_video.mp4 /sdcard/mms_test/video.mp4

插入视频附件记录:

adb shell content insert --uri content://mms/part --bind mid:i:123 --bind part_type:s:video/mp4 --bind data:/sdcard/mms_test/video.mp4 --bind text:s:内嵌MP4测试 --bind disp:s:inline

不同视频格式对应不同MIME类型:3GP用video/3gpp,AVI用video/avi,可按需替换。

(3)引用外部视频(URL形式)

无需推送文件,直接插入引用类型的附件记录:

adb shell content insert --uri content://mms/part --bind mid:i:123 --bind part_type:s:text/plain --bind text:s:https://example.com/test_video.mp4 --bind disp:s:attachment --bind ct_l:s:video/mp4
  • ct_l:s:video/mp4:指定引用内容的MIME类型
  • text字段存储外部视频URL,disp:s:attachment标记为引用附件

(4)添加SMIL控制内容(可选)

若需测试SMIL格式的多媒体展示逻辑,插入SMIL类型的附件:

adb shell content insert --uri content://mms/part --bind mid:i:123 --bind part_type:s:application/smil --bind text:s:'<smil><head><layout><root-layout width="320" height="480"/><region id="video" left="0" top="0" width="320" height="320"/><region id="audio" left="0" top="320" width="320" height="160"/></layout></head><body><par dur="10000"><video src="video.mp4" region="video"/><audio src="audio.mp3" region="audio"/></par></body></smil>' --bind disp:s:inline

这段SMIL代码定义了视频、音频的展示区域和同步播放时长。

3. 触发短信应用刷新

插入完成后,发送广播通知短信应用加载新MMS:

adb shell am broadcast -a android.intent.action.MMS_RECEIVED --es mms-id 123

二、模拟器短信应用手动发送(模拟真实流程)

若需测试真实发送逻辑,可按以下步骤操作:

  • 打开模拟器自带短信应用,新建MMS
  • 点击附件按钮,选择从存储添加已推送的MP3、视频文件
  • 对于引用内容,直接在文本框输入视频URL,部分短信应用会自动识别为引用附件
  • 输入模拟器自身号码(如5554)发送即可

三、测试注意事项

  • 推送文件前,用adb shell df确认模拟器存储有足够空间
  • 不同Android版本的Content Provider字段可能有差异,若命令报错,可尝试将msg_box替换为box
  • 覆盖常见MIME类型测试:MP3、AAC(audio/aac)、MP4、3GP等
  • 区分inline(内嵌)和attachment(附件)模式,确保应用能正确处理两种展示逻辑

内容的提问来源于stack exchange,提问作者Alex161

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 23:31:02