SMS的源码研究

本文详细解析了Android SMS应用的源码,包括UI布局如`ComposeMessageActivity`、`ConversationListScreen`等。在发送流程中,通过`WorkingMessage`、`SmsMessageSender`实现,最后由`SmsManager`发送。接收流程由`PrivilegedSmsReceiver`接收,经`SmsReceiverService`处理。整个过程涉及数据库操作、MessageSender接口及BroadcastReceiver。
摘要由CSDN通过智能技术生成

SMS_UI---Layout
conversation_list_screen.xml
显示对话列表
conversation_list_actionbar.xml
未读对话列表的选中高亮 id:unread_conv_count 
conversation_list_multi_select_actionbar.xml
已选会话列表的选中高亮 id:selected_conv_count
conversation_list_item.xml
每组会话在列表中都是图片+fromdatesubject的形式
compose_message_activity.xml
编辑框 发送(id:send_button_sms) 全选 取消 删除

SMS---Src
1UI入口
ComposeMessageActivity extends Activity(com.android.mms.ui)
onCreate() 
initMessageSettings()
加载setting中的设置
initResourceRefs()
初始化UI控件
mSendButtonSms = (ImageButton) findViewById(R.id.send_button_sms);
mSendButtonSms.setOnClickListener(this); 
| (mUiHander
表示一个主线程的Handle对象)
onClick(View v) --> mUiHandler.sendEmptyMessageDelayed(MSG_RESUME_SEND_BUTTON, RESUME_BUTTON_INTERVAL);
等待指定的时间(1)之后发送消息到子线程
sendMessage()
允许你处理Message对象(Message里可以包含数据)sendEmptyMessage()只能放数据

SaveMsgThread extends Thread
启动消息队列机制
2)待传送的信息
WorkingMessage (com.android.mms.data)
即将发送的短信类
3)发送信息
SmsMessageSender implements MessageSender(com.android.mms.transaction)
为短信的发送作准备,使sms进入消息队列,分离接收人
SmsSingleRecipientSender extends MessageSender
发送一条短信,最终用frameworkSmsManager来发送信息
4)接收信息
SmsReceiver extends BroadcastReceiver(com.android.mms.transaction)
请求sms service的入口
PrivilegedSmsReceiver extends SmsReceiver(com.android.mms.transaction)
接收短信的类

SmsReceiverService extends Service(com.android.mms.transaction)sms
的处理中心,处理信息的 send/receive,处理一些来自framework层的的通知。
MessageStatusReceiver extends BroadcastReceiver(com.android.mms.transaction)
捕获信息,并读取信息的状态

SMS---解读
1)发送信息的流程
用户在ComposeMessageActivitynew一个WorkingMessage对象
WorkingMessage
new一个SmsMessageSender对象
PendingIntent
是一个发送异步intent的类
本质上就是使用MessageSender接口发送信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值