没有合适的资源?快使用搜索试试~ 我知道了~
Android开发中使用mms模块收发单卡和双卡短信的教程
0 下载量 152 浏览量
2021-01-05
16:36:33
上传
评论
收藏 132KB PDF 举报
温馨提示
一.信息发送: com.android.mms.data.WorkingMessage.java 类 send()函数: public void send() { ...... if (requiresMms() || addressContainsEmailToMms(conv, msgTxt)) { // 彩信 slideshow.prepareForSend(); new Thread(new Runnable() { public void run() { sendMmsWorker(
资源推荐
资源详情
资源评论
Android开发中使用开发中使用mms模块收发单卡和双卡短信的教程模块收发单卡和双卡短信的教程
一一.信息发送信息发送:
com.android.mms.data.WorkingMessage.java 类
send()函数:
public void send() {
......
if (requiresMms() || addressContainsEmailToMms(conv, msgTxt)) {
// 彩信
slideshow.prepareForSend();
new Thread(new Runnable() {
public void run() {
sendMmsWorker(conv, mmsUri, persister, slideshow, sendReq);
}
}).start();
} else {
// 短信
new Thread(new Runnable() {
public void run() {
preSendSmsWorker(conv, msgText);
}
}).start();
......
}
prapareForSend(). 先确保有slidshow,也就是实质内容。 确保文字已拷贝。确保标题。 根据消息分类,如果是短信直接起一个线程,跑
preSendSmsWorker函数,发送短信;如果是彩信,先跑prapareForSave确保文本信息,然后起一个线程,单独跑sendMmsWorker函数。不管是
短信还是彩信,起了那个worker函数之一就算发送信息成功了。 最后修改Recipient cache, 重置标志位,过程就结束了。
短信发送先调用preSendSmsWorker函数,在preSendSmsWorker函数中又起了sendSmsWorker函数。
private void sendSmsWorker(String msgText, String semiSepRecipients, long threadId) {
......
MessageSender sender = new SmsMessageSender(mContext, dests, msgText, threadId);
sender.sendMessage(threadId);
......
}
SmsMessageSender.java类,在mms/transaction下面,实现了MessageSender接口,这个接口sendMessage并返回boolean的值。若发送的是
mms,返回true。若发送的是sms,返回false。
当然,对于单卡手机和双卡双待手机的短信发送流程是有区别的(短信接收的流程是相同的,相对流程也比较简洁),关于具体的流程还是直接用
UML图来说明更为直接:
信息发送与接收时序图:
发送短信
单卡手机短信发送的时序图如图所示:
资源评论
weixin_38620959
- 粉丝: 10
- 资源: 923
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功