MMS发送流程代码版androidWord文件下载.docx
- 文档编号:13759706
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:32
- 大小:35.86KB
MMS发送流程代码版androidWord文件下载.docx
《MMS发送流程代码版androidWord文件下载.docx》由会员分享,可在线阅读,更多相关《MMS发送流程代码版androidWord文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
2。
src/com/android/mms/ui/ComposeMessageActivity.java
privatevoidconfirmSendMessageIfNeeded(){
if (!
isRecipientsEditorVisible()) {
//编辑联系人不可见时,也就是给已存在会话的联系人发送短信时
sendMessage(true);
return;
}
booleanisMms=mWorkingMessage.requiresMms();
//是否需要以彩信形式发送
if(mRecipientsEditor。
hasInvalidRecipient(isMms)){//是否含有不合法的收件人
if(mRecipientsEditor。
hasValidRecipient(isMms)){//有合法的和不合法的,弹出尝试发送对话框
String title=getResourcesString(R.string.has_invalid_recipient,
mRecipientsEditor。
formatInvalidNumbers(isMms));
newAlertDialog.Builder(this)
。
setIcon(android。
R.drawable.ic_dialog_alert)
setTitle(title)
.setMessage(R.string。
invalid_recipient_message)
。
setPositiveButton(R.string。
try_to_send,
newSendIgnoreInvalidRecipientListener())
setNegativeButton(R.string.no,newCancelSendingListener())
.show();
} else{//如果全是不合法的联系人,提示不能发送信息
newAlertDialog。
Builder(this)
setIcon(android.R.drawable。
ic_dialog_alert)
setTitle(R。
string.cannot_send_message)
setMessage(R.string.cannot_send_message_reason)
.setPositiveButton(R.string.yes,newCancelSendingListener())
show();
}else{//判断收件人没有问题,接着发送信息-—》
sendMessage(true);
3.src/com/android/mms/ui/ComposeMessageActivity。
java
privatevoid sendMessage(boolean bCheckEcmMode){
Log.v(TAG,"
sendMessage");
if(bCheckEcmMode){
// TODO:
exposethisintelephony layerfor SDKbuild
StringinEcm=SystemProperties.get(TelephonyProperties.PROPERTY_INECM_MODE);
//判断电话是否处于紧急拨号模式,得到的inEcm一般为空
Log。
v(TAG, ”inEcm="
+inEcm);
if(Boolean。
parseBoolean(inEcm)) {
try{
startActivityForResult(
new Intent(TelephonyIntents。
ACTION_SHOW_NOTICE_ECM_BLOCK_OTHERS,null),
REQUEST_CODE_ECM_EXIT_DIALOG);
return;
}catch(ActivityNotFoundException e){
// continueto sendmessage
Log.e(TAG,"CannotfindEmergencyCallbackModeExitDialog"
e);
}
if(!
mSendingMessage){
//send canchangetherecipients。
Makesure weremove thelistenersfirstandthenadd
//thembackoncetherecipientlisthassettled.
removeRecipientsListeners();
//取消对收件人的监听
mWorkingMessage.send();
//发送信息-—》
mSentMessage = true;
mSendingMessage=true;
addRecipientsListeners();
//重新添加收件人监听
//Butbailoutif wearesupposed toexit afterthemessageissent。
if(mExitOnSent){//如果mExitOnSent为true,信息发送完成后退出Activity
finish();
4。
src/com/android/mms/data/WorkingMessage.java
/**
*Sendthis messageoverthenetwork.
Willcallback withonMessageSent()once
*ithasbeendispatchedtothetelephonystack。
This WorkingMessageobjectis
*nolongeruseful afterthis methodhasbeen called.
*/
publicvoid send(){
if(Log.isLoggable(LogTag。
TRANSACTION, Log。
VERBOSE)){
LogTag.debug(”send”);
//Getreadytowriteto disk。
prepareForSave(true/* notify*/);
//主要做一下同步收件人和WorkingMessage,彩信时在准备其他一些东西
//Weneedtherecipient list forbothSMSandMMS.
finalConversationconv=mConversation;
String msgTxt=mText.toString();
Log.v(TAG,"
msgText=”+ msgTxt);
if(requiresMms()||addressContainsEmailToMms(conv,msgTxt)){
//Makelocalcopiesofthe bitsweneedforsendingamessage,
//becausewewillbedoing itoff ofthemainthread,whichwill
//immediatelycontinueontoresettingsome ofthisstate。
final Uri mmsUri=mMessageUri;
//如果第一次发送,此时mmsUri为null,如果是重发,则是草稿箱的地址mMessageUri=content:
//mms/drafts/1
final PduPersister persister =PduPersister。
getPduPersister(mContext);
finalSlideshowModelslideshow=mSlideshow;
finalSendReqsendReq= makeSendReq(conv,mSubject);
//Dothe dirty workof sending themessageoffofthemainUIthread。
newThread(new Runnable(){
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MMS 发送 流程 代码 android