1、接收到mms的保存
接收到得mms,会在RetrieveTransaction::run()函数中调用PduPersister::persist(..)进行保存。

2、vcard、vcalendar的实现
a、接收
接收到的mms被保存时,会在PduPersister::persist(..)的最后调用checkHaveOtherAttachment(..),设置db中的Mms.OTHER_ATTACHMENT,用来标示附件的类型,如果是vcard或vcalendar,则其值为Mms.OTHER_ATTACHMENT_VCARD_UNSELECT等;
db中的Mms.OTHER_ATTACHMENT会用来标示mms中是否含有这两个东东,从而决定UI的显示;
访问part of vcard、vcalendar时,通过遍历mms uri在db中的所有part,比较器content type是否为"text/x-vCard"、"text/x-vCalendar"或"application/oct-stream",从而找出要的part,如转发时就是通过此方式(ComposeMessageActivity::importVcardVCalendar());
b、编辑

编辑时,vcard选取后,其数据会被作为一个part存储在db中,并插入到"第一个slide"中,具体可参考ComposeMessageActivity::addVCard();
生成pdu时,vcard、vcalendar会跟其他的model一样,被作为part存储,具体见SlideshowModel::makePduBody(..);

3、loading the list of thread and message
a、thread
ConversationList::startAsyncQuery(),从DB中读出列表;
ThreadListQueryHandler::onQueryComplete(..),拿到查询结果cursor;
ConversationListAdapter::bindView(..),解析cursor,并将数据赋给各个thread item;
b、message
ConversationList::onListItemClick(..),触发event of loading message list。
ComposeMessageActivity::startMsgListQuery(),从DB中读出列表;
MessageListAdapter::bindView(..); MessageItem::MessageItem(..),解析cursor,并将数据赋给各个message item; 4、RecipientsEditor的实现。
a、收件人栏输入两个及以上字符后自动列出匹配的原理
字符改变 --> 触发text changed事件 --> ... --> RecipientsAdapter::runQueryOnBackgroundThread(..) --> ... --> AutoCompleteTextView::onFilterComplete(..) --> AutoCompleteTextView::showDropDown() --> RecipientsAdapter::bindView(..)
其中,函数runQueryOnBackgroundThread是从数据库中查询符合条件的收件人号码或email地址;bindView则是将查询到的各项作为item insert到ListView中。
b、。。。。
5、发送mms的过程。
以ComposeMessageActivity中的发送为例。
保存后为草稿 --> 调用ComposeMessageActivity::sendMmsWorker(...) --> MmsMessageSender::sendMessage(...) --> 设置时间等,将mms move到 out box --> requestService TransactionService::SEND_TRANSACTION --> TransactionService::ServiceHandler::handleMessage(...) --> ... --> SendTransaction::run() --> Transaction::sendPdu(...) --> HttpUtils.httpConnection(...) --> AndroidHttpClient::execute(...)。
AndroidHttpClient::execute 会执行真正的发送操作。
6、。。。

更多相关文章

  1. Android调用第三方app(Scheme隐式以及显示调用)
  2. android 异常情况下的onSaveInatanceState()与onRestoreIntanceS
  3. Android(安卓)Jetpack 组件之 ViewModel(Kotlin)
  4. 程序分析:Android漏洞挖掘技术
  5. Android拍照流程
  6. Android(安卓)开发之serviceManager分析
  7. Android(安卓)默认AP名字,以及AP名字存储路径
  8. Android(安卓)VOIP拨打电话机制分析
  9. Android中调用Paint的measureText()方法取得字符串显示的宽度值

随机推荐

  1. Android学习笔记之源码下载打包
  2. Android歌词秀设计思路(1)SafetyTimer
  3. 保存/恢复Activity和Fragment状态的最佳
  4. 解析Android中的XML
  5. android 最简单的自定义适配器(BaseAdapt
  6. 安卓中一些常用的属性小结
  7. Android(安卓)ORM妗嗘灦浠嬬粛涔媑reenDa
  8. 《Android经验分享》周刊第12期
  9. Android跨进程通信之AIDL(四)
  10. Android8.0 在framework中添加KeyCode