MMS发送流程代码版android.docx

上传人:b****2 文档编号:837184 上传时间:2022-10-13 格式:DOCX 页数:32 大小:35.86KB
下载 相关 举报
MMS发送流程代码版android.docx_第1页
第1页 / 共32页
MMS发送流程代码版android.docx_第2页
第2页 / 共32页
MMS发送流程代码版android.docx_第3页
第3页 / 共32页
MMS发送流程代码版android.docx_第4页
第4页 / 共32页
MMS发送流程代码版android.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

MMS发送流程代码版android.docx

《MMS发送流程代码版android.docx》由会员分享,可在线阅读,更多相关《MMS发送流程代码版android.docx(32页珍藏版)》请在冰豆网上搜索。

MMS发送流程代码版android.docx

MMS发送流程代码版android

MMS发送流程(代码版)

Android2。

2packages/apps/Mms

1。

     点击发送按钮Src/com/android/mms/ui/ComposeMessageActivity.java

publicvoidonClick(View v) {

       if((v== mSendButton)&& isPreparedForSending()){

            confirmSendMessageIfNeeded();//确认是否需要发送短信-—》

       }

}

 

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(){

               

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1