版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、MMS發(fā)送流程(代碼版)Android2.2packages/apps/Mms1. 點(diǎn)擊發(fā)送按鈕Src/com/android/mms/ui/ComposeMessageActivity.javapublic void onClick(View v) iff (v = mmSenndBuuttoon) & isPPreppareedFoorSeendiing() cconffirmmSenndMeessaageIIfNeeedeed(); /確認(rèn)認(rèn)是否需需要發(fā)送送短信- 2.srrc/ccom/anddroiid/mmms/ui/CommposseMeessaageAActiivitty.jj
2、avaaprivvatee vooid connfirrmSeendMMesssageeIfNNeedded() iff (!isRReciipieentssEdiitorrVissiblle() /編輯輯聯(lián)系人人不可見見時(shí),也也就是給給已存在在會(huì)話的的聯(lián)系人人發(fā)送短短信時(shí) ssenddMesssagge(ttruee); rretuurn; boooleean isMMms = mmWorrkinngMeessaage.reqquirresMMms(); /是否否需要以以彩信形形式發(fā)送送 if (mRReciipieentssEdiitorr.haasInnvallidRReciipieen
3、t(isMMms) /是是否含有有不合法法的收件件人 iif (mReecippienntsEEdittor.hassVallidRReciipieent(isMMms) /有有合法的的和不合合法的,彈出嘗嘗試發(fā)送送對(duì)話框框 Strringg tiitlee = gettRessourrcessStrringg(R.strringg.haas_iinvaalidd_reecippiennt, mmReccipiienttsEdditoor.fformmatIInvaaliddNummberrs(iisMmms); neww AllerttDiaalogg.Buuildder(thiis) .s
4、eetIccon(anddroiid.RR.drrawaablee.icc_diialoog_aalerrt) .ssetTTitlle(ttitlle) .ssetMMesssagee(R.strringg.innvallid_reccipiientt_meessaage) .seetPoosittiveeButttonn(R.strringg.trry_tto_ssendd, newwSenndIggnorreInnvallidRReciipieentLListteneer() .seetNeegattiveeButttonn(R.strringg.noo, nnew CanncellSe
5、nndinngLiisteenerr() .sshoww(); ellse /如果全全是不合合法的聯(lián)聯(lián)系人,提示不不能發(fā)送送信息 neww AllerttDiaalogg.Buuildder(thiis) .seetIccon(anddroiid.RR.drrawaablee.icc_diialoog_aalerrt) .ssetTTitlle(RR.sttrinng.ccannnot_sennd_mmesssagee) .ssetMMesssagee(R.strringg.caannoot_ssendd_meessaage_reaasonn) .seetPoosittiveeButttonn
6、(R.strringg.yees, neww CaanceelSeendiingLListteneer() .sshoww(); elsse /判判斷收件件人沒有有問題,接著發(fā)發(fā)送信息息 - ssenddMesssagge(ttruee); 3. ssrc/comm/anndrooid/mmss/uii/CoompooseMMesssageeActtiviity.javvaprivvatee vooid senndMeessaage(boooleaan bbCheeckEEcmMModee) Logg.v(TAGG, senndMeessaage); iff (bbCheeckEEcmMMod
7、ee) / TTODOO: eexpoose thiis iin tteleephoony layyer forr SDDK bbuilld SStriing inEEcm = SSysttemPPropperttiess.geet(TTeleephoonyPPropperttiess.PRROPEERTYY_INNECMM_MOODE); /判判斷電話話是否處處于緊急急撥號(hào)模模式,得得到的iinEccm一般般為空 LLog.v(TTAG, iinEccm = + iinEccm); iif (Boooleaan.pparsseBoooleean(inEEcm) tryy sttarttAct
8、tiviityFForRResuult( neww Inntennt(TTeleephoonyIInteentss.ACCTIOON_SSHOWW_NOOTICCE_EECM_BLOOCK_OTHHERSS,nuull), REQQUESST_CCODEE_ECCM_EEXITT_DIIALOOG); reeturrn; ccatcch (ActtiviityNNotFFounndExxcepptioon ee) / coontiinuee too seend messsagge Loog.ee(TAAG, Caannoot ffindd EmmerggenccyCaallbbackkModd
9、eExxitDDiallog, ee); iff (!mSeendiingMMesssagee) / ssendd caan cchannge thee reecippiennts. Maake surre wwe rremoove thee liisteenerrs ffirsstannd tthenn addd / tthemm baack oncce tthe reccipiientt liist hass seettlled. rremooveRReciipieentssLisstennerss(); /取消消對(duì)收件件人的監(jiān)監(jiān)聽 mmWorrkinngMeessaage.sennd()
10、; /發(fā)送信信息- mmSenntMeessaage = ttruee; mmSenndinngMeessaage = ttruee; aaddRReciipieentssLisstennerss(); /重新添添加收件件人監(jiān)聽聽 / Buut bbaill ouut iif wwe aare supppossed to exiit aafteer tthe messsagge iis ssentt. iff (mmExiitOnnSennt) /如果mEExittOnSSentt為truue,信信息發(fā)送送完成后后退出AActiivitty ffiniish(); 4. ssrc/comm/a
11、nndrooid/mmss/daata/WorrkinngMeessaage.javva/* * Sennd tthiss meessaage oveer tthe nettworrk. Wiill calll bbackk wiith onMMesssageeSennt() onnce * it hass beeen disspattcheed tto tthe tellephhonyystaack. TThiss WoorkiingMMesssagee obbjecct iis * no lonngerr ussefuul aafteer tthiss meethood hhasbbeen
12、n caalleed. */ pubblicc vooid sennd() iff (LLog.isLLogggablle(LLogTTag.TRAANSAACTIION, Loog.VVERBBOSEE) LLogTTag.debbug(seend); / Geet rreaddy tto wwritte tto ddiskk. prrepaareFForSSavee(trrue /* nottifyy */);/主要要做一下下同步收收件人和和WorrkinngMeessaage,彩信時(shí)時(shí)在準(zhǔn)備備其他一一些東西西 / Wee neeed thee reecippiennt llistt fo
13、or bbothh SMMS aand MMSS. fiinall Coonveersaatioon cconvv = mCoonveersaatioon; Sttrinng mmsgTTxt = mmTexxt.ttoSttrinng(); Loog.vv(TAAG, mssgTeext = + msggTxtt); iff (rrequuireesMmms()| adddresssCoontaainssEmaailTToMmms(cconvv, mmsgTTxt) / MMakee loocall coopiees oof tthe bitts wwe nneedd foor ssendd
14、ingg a messsagge, / bbecaausee wee wiill be doiing it offf off thhe mmainn thhreaad, whiich willl / iimmeediaatelly cconttinuue oon tto rreseettiing somme oof tthiss sttatee. ffinaal UUri mmssUrii = mMeessaageUUri; /如如果第一一次發(fā)送送,此時(shí)時(shí)mmssUrii為nulll,如如果是重重發(fā),則則是草稿稿箱的地地址 mmMesssaggeUrri =conntennt:/mmms/dd
15、raffts/1 ffinaal PPduPPerssistter perrsissterr = PduuPerrsissterr.geetPdduPeersiisteer(mmConntexxt); ffinaal SSliddeshhowMModeel ssliddeshhow = mmSliidesshoww; ffinaal SSenddReqq seendRReq = mmakeeSenndReeq(cconvv,mSSubjjectt); / DDo tthe dirrty worrk oof ssenddingg thhe mmesssagee offf oof tthe mai
16、in UUI tthreead. nnew Thrreadd(neew RRunnnablle() pubblicc vooid runn() / Maake surre tthe texxt iin sslidde 00 iss noo loongeer hholddingg onnto a rrefeerennce to / thhe ttextt inn thhe mmesssagee teext boxx. sllideeshoow.ppreppareeForrSennd(); seendMMmsWWorkker(connv, mmssUrii, pperssistter, sllid
17、eeshoow, senndReeq); ).sstarrt(); eelsee / SSamee ruuless appplyy ass abbovee. ffinaal SStriing msggTexxt = mTTextt.tooStrringg();/取取出短消消息 LLog.v(TTAG, mmsgTTextt = + mssgTeext); nnew Thrreadd(neew RRunnnablle() pubblicc vooid runn() prreSeendSSmsWWorkker(connv, msggTexxt);/發(fā)發(fā)送信息息- ).sstarrt(); / up
18、pdatte tthe Reccipiientt caachee wiith thee neew tto aaddrresss, iif iitss diiffeerennt ReecippienntIddCacche.upddateeNummberrs(cconvv.geetThhreaadIdd(),connv.ggetRReciipieentss(); / Maark thee meessaage as disscarrdedd beecauuse it is offf tthe marrkettaffterr beeingg seent. mDDisccardded = ttruee;
19、 5. ssrc/comm/anndrooid/mmss/daata/WorrkinngMeessaage.javvaprivvatee vooid senndMmmsWoorkeer(CConvverssatiion connv, Urii mmmsUrri, PduuPerrsissterrperrsissterr, SSliddeshhowMModeel ssliddeshhow, SeendRReq senndReeq) Logg.v(TAGG, senndMmmsWoorkeer); / Iff usser triies to sennd tthe messsagge, its aa
20、 siignaal tthe inpputttedttextt iss whhat theey wwantted. UsserHHapppineessSSignnalss.usserAAcceepteedImmeTeext(mCoonteext); / Fiirstt maake surre wwe ddont hhavee tooo mmanyy ouutsttanddingg unnsennt mmesssagee. Cuursoor ccurssor = nnulll; trry ccurssor = SSqliiteWWrappperr.quueryy(mCConttextt, mmC
21、onntenntReesollverr, Mmms.OOutbbox.CONNTENNT_UURI,MMSS_OUUTBOOX_PPROJJECTTIONN, nnulll, nnulll, nnulll); iif (currsorr != nuull) /如果果MMSS_OUUTBOOX里有有未發(fā)送送的彩信信,并且且總的大大小已經(jīng)經(jīng)超過了了彩信的的最大限限制,則則取消此此次發(fā)送送,并存存入草稿稿箱 Loog.vv(TAAG, quueryy Mmms.OOutbbox.CONNTENNT_UURI is nott emmptyy); lonng mmaxMMesssageeSizze =
22、MmmsCoonfiig.ggetMMaxSSizeeScaaleFForPPenddinggMmssAllloweed()* MmmsCoonfiig.ggetMMaxMMesssageeSizze(); Logg.v(TAGG, MmssConnfigg.geetMaaxSiizeSScalleFoorPeendiingMMmsAAlloowedd() = + MMmsCConffig.gettMaxxSizzeSccaleeForrPenndinngMmmsAlllowwed(); Logg.v(TAGG, MmssConnfigg.geetMaaxMeessaageSSizee()()
23、 = + MMmsCConffig.gettMaxxMesssaggeSiize(); lonng ttotaalPeendiingSSizee = 0; whiile (cuursoor.mmoveeToNNextt() tootallPenndinngSiize +=ccurssor.gettLonng(MMMS_MESSSAGGE_SSIZEE_INNDEXX); Loog.vv(TAAG, tootallPenndinngSiize = + tottalPPenddinggSizze); if (tootallPenndinngSiize = maxxMesssaggeSiize) u
24、nnDisscarrd(); / iitwaasnt ssucccesssfullly sennt. Alllow it to be savved as a ddrafft. mSStattusLListteneer.oonMaaxPeendiingMMesssageesReeachhed(); reeturrn; elsse Loog.vv(TAAG, quueryy Mmms.OOutbbox.CONNTENNT_UURI is emppty); finnallly iif (currsorr != nuull) currsorr.cllosee(); mSStattusLListtene
25、er.oonPrreMeessaageSSentt(); / Maake surre wwe aare stiill usiing thee coorreect thrreadd IDD foor oour / reecippiennt sset. loong thrreaddId = cconvv.ennsurreThhreaadIdd(); iff (LLog.isLLogggablle(LLogTTag.APPP, LLog.VERRBOSSE) LLogTTag.debbug(seendMMmsWWorkker: uppdatte ddrafft MMMS messsagge + mm
26、ssUrii); iff (mmmsUUri = nulll) /如果是是首次發(fā)發(fā)送,先先把彩信信保存入入草稿箱箱 / CCreaate a nnew MMSS meessaage if onee haasnt bbeenn maade yett. Loog.vv(TAAG, mmmsUrri = nnulll annd sstarrtcrreatteDrrafttMmssMesssagge); mmmsUUri = ccreaateDDrafftMmmsMeessaage(perrsissterr,seendRReq, sllideeshoow); elsse / OOtheerwiise,
27、 syync thee MMMS mmesssagee inn prrogrresss too diisk. Loog.vv(TAAG, mmmsUrri = + mmmsUUri); Loog.vv(TAAG, uppdatteDrrafttMmssMesssagge); uupdaateDDrafftMmmsMeessaage(mmssUrii,peersiisteer, sliidesshoww, ssenddReqq); / Bee paarannoidd annd ccleaan aany draaft SMSS upp. deeletteDrrafttSmssMesssagge(t
28、threeadIId); / Reesizze aall thee reesizzeabble atttachhmennts (e.g. piccturres) too fiit / inn thhe rremaainiing spaace in thee sllideeshoow. innt eerroor = 0; trry ssliddeshhow.finnalRResiize(mmssUrii); cattch (ExxceeedMeessaageSSizeeExccepttionn e11) eerroor = MEESSAAGE_SIZZE_EEXCEEEDEED; cattch
29、(MmmsExxcepptioon ee1) eerroor = UNNKNOOWN_ERRROR; iff (eerroor != 00) mmarkkMmssMesssaggeWiithEErroor(mmmsUUri); mmStaatussLisstenner.onAAttaachmmenttErrror(errror); rretuurn; MeessaageSSendder sennderr = neww MmmsMeessaageSSendder(mCoonteext, mmmsUrri, ssliddeshhow.gettCurrrenntMeessaageSSizee();
30、trry iif (!seendeer.ssenddMesssagge(tthreeadIId) / Thee meessaage wass seent thrrouggh SSMS prootoccol, wee shhoulld / delletee thhe ccopyy whhichh waas pprevviouuslyy saavedd inn MMMS ddraffts. SqlliteeWraappeer.ddeleete(mCoonteext, mCConttenttRessolvver, mmmsUrri, nulll, nulll); / MMakee suure thi
31、is tthreead isnnt oveer tthe limmitss inn meessaage couunt RRecyycleer.ggetMMmsRRecyycleer().deeletteOlldMeessaagessByTThreeadIId(mmConntexxt, thrreaddId); cattch (Exxcepptioon ee) LLog.e(TTAG, FFailled to sennd mmesssagee: + mmssUrii + ,tthreeadIId= + thrreaddId, e); mSStattusLListteneer.oonMeessaa
32、geSSentt();6.srrc/ccom/anddroiid/mmms/traansaactiion/MmssMesssaggeSeendeer.jjavaapubllic boooleaan ssenddMesssagge(llongg tookenn) tthroows MmssExccepttionn / Looad thee MMMS ffromm thhe mmesssagee urri PdduPeersiisteer pp = PduuPerrsissterr.geetPdduPeersiisteer(mmConntexxt); GeenerricPPdu pduu = p.
33、lloadd(mMMesssageeUrii); iff (ppdu.gettMesssaggeTyype() != PPduHHeadderss.MEESSAAGE_TYPPE_SSENDD_REEQ) tthroow nnew MmssExccepttionn(IInvaalidd meessaage: +pddu.ggetMMesssageeTyppe(); SeendRReq senndReeq = (SSenddReqq)pddu; / Uppdatte hheadderss. uppdattePrrefeerenncessHeaaderrs(ssenddReqq); / Meess
34、aageCClasss. seendRReq.settMesssaggeCllasss(DEEFAUULT_MESSSAGGE_CCLASSS.ggetBBytees(); / Uppdatte tthe daate fiieldd off thhe mmesssagee beeforre ssenddingg itt. seendRReq.settDatte(SSysttem.currrenntTiimeMMilllis()/ 10000L); seendRReq.settMesssaggeSiize(mMeessaageSSizee); p.upddateeHeaaderrs(mmMess
35、saggeUrri, senndReeq); / Moove thee meessaage intto MMMS Outtboxx p.movve(mmMesssaggeUrri, Mmss.Ouutboox.CCONTTENTT_URRI); / Sttartt MMMS ttrannsacctioon sservvicee SeendiingPProggresssTookennMannageer.pput(ConntenntUrris.parrseIId(mmMesssaggeUrri), tookenn); mCConttextt.sttarttSerrvicce(nnew Intten
36、tt(mCConttextt, TTrannsacctioonSeerviice.claass); reeturrn ttruee; 7.srrc/ccom/anddroiid/mmms/traansaactiion/TraansaactiionSServvicee.jaavaOveerriide pubblicc innt oonSttarttCommmannd(IInteent inttentt, iint flaags, innt sstarrtIdd) Logg.v(TAGG, onSStarrtCoommaand); iff (iinteent = nulll) rretuurn S
37、errvicce.SSTARRT_NNOT_STIICKYY; mCConnnMgrr = (CoonneectiivittyMaanagger)gettSysstemmSerrvicce(CConttextt.COONNEECTIIVITTY_SSERVVICEE); boooleean noNNetwworkk =!isNNetwworkkAvaailaablee(); iff (LLog.isLLogggablle(LLogTTag.TRAANSAACTIION, Loog.VVERBBOSEE) LLog.v(TTAG, oonSttartt: # + sttarttId + : +
38、inttentt.geetExxtraas() + iinteent= + inntennt); LLog.v(TTAG, nnetwworkkAvaailaablee= + !noNNetwworkk); Loog.vv(TAAG, geetAcctioon iis + inttentt.geetAcctioon(); iff (AACTIION_ONAALARRM.eequaals(inttentt.geetAcctioon()| (iinteent.gettExttrass() = nulll) Loog.vv(TAAG, ACCTIOON_OONALLARMM.eqqualls(iin
39、teent.gettActtionn() |(inntennt.ggetEExtrras() = nnulll); / SScann daatabbasee too fiind alll peendiing opeerattionns. CCurssor currsorr = PduuPerrsissterr.geetPdduPeersiisteer(tthiss).ggetPPenddinggMesssagges( Syysteem.ccurrrenttTimmeMiilliis(); iif (currsorr != nuull) tryy innt ccounnt = cuursoor.
40、ggetCCounnt(); iff (LLog.isLLogggablle(LLogTTag.TRAANSAACTIION, Loog.VVERBBOSEE) LLog.v(TTAG, oonSttartt: ccurssor.couunt= + coountt); iff (ccounnt = 00) iif (Logg.issLogggabble(LoggTagg.TRRANSSACTTIONN, LLog.VERRBOSSE) Logg.v(TAGG, onSStarrt: no penndinng mmesssagees. Stooppiingsservvicee.); RRetrr
41、yScchedduleer.ssetRRetrryAllarmm(thhis); sttopSSelffIfIIdlee(sttarttId); rretuurn Serrvicce.SSTARRT_NNOT_STIICKYY; innt ccoluumnIIndeexOffMsggId =cuursoor.ggetCColuumnIIndeexOrrThrrow(PenndinngMeessaagess.MSSG_IID); innt ccoluumnIIndeexOffMsggTyppe =currsorr.geetCoolummnInndexxOrTThroow( PenndinngMe
42、essaagess.MSSG_TTYPEE); iff (nnoNeetwoork) / MMakee suure we reggistter forr coonneectiion staate chaangees. iif (Logg.issLogggabble(LoggTagg.TRRANSSACTTIONN, LLog.VERRBOSSE) Logg.v(TAGG, onSStarrt: reggistterFForCConnnecttionnStaateCChanngess); MMmsSSysttemEEvenntReeceiiverr.reegissterrForrConnnecc
43、tioonSttateeChaangees( gettApppliccatiionCConttextt(); whhilee (ccurssor.movveTooNexxt() iint msggTyppe =currsorr.geetInnt(ccoluumnIIndeexOffMsggTyppe); iint traansaactiionTTypee =ggetTTrannsacctioonTyype(msggTyppe); LLog.v(TTAG, mmsgTTypee = + mssgTyype); LLog.v(TTAG, ttrannsacctioonTyype = + traan
44、saactiionTTypee); iif (noNNetwworkk) oonNeetwoorkUUnavvaillablle(sstarrtIdd, ttrannsacctioonTyype); retturnn Seerviice.STAART_NOTT_STTICKKY; sswittch (trranssacttionnTyppe) casse -1: brreakk; casse TTrannsacctioon.RRETRRIEVVE_TTRANNSACCTIOON: / Iff itts a ttrannsieentlly ffailled traansaactiion, / w
45、ee shhoulld rretrry iit iin sspitte oof ccurrrentt / doownlloaddingg moode. innt ffaillureeTyppe =currsorr.geetInnt( ccurssor.gettCollumnnInddexOOrThhroww( PeendiingMMesssagees.EERROOR_TTYPEE); iff (!isTTrannsieentFFailluree(faailuureTTypee) bbreaak; / faall-thrrouggh deffaullt: Urri uuri =Coonteent
46、UUriss.wiithAAppeendeedIdd( Mmss.COONTEENT_URII, ccurssor.gettLonng(ccoluumnIIndeexOffMsggId); TraansaactiionBBunddle arggs = neew TTrannsacctioonBuundlle( ttrannsacctioonTyype, urri.ttoSttrinng(); / FIIXMEE: WWe uuse thee saame staartIId ffor alll MMMs. laauncchTrranssacttionn(sttarttId, arrgs, faa
47、lsee); brreakk; ffinaallyy cuursoor.cclosse(); ellse if (Loog.iisLooggaablee(LoogTaag.TTRANNSACCTIOON, Logg.VEERBOOSE) Loog.vv(TAAG, onnStaart: noo peendiing messsagges. Sttopppinggserrvicce.); RettrySScheeduller.settRettryAAlarrm(tthiss); stoopSeelfIIfIddle(staartIId); elsse iif (Logg.issLogggabble
48、(LoggTagg.TRRANSSACTTIONN, LLog.VERRBOSSE) Logg.v(TAGG, onSStarrt: lauunchh trranssacttionn.); / FFor lauunchhingg NootifficaatioonTrranssacttionn annd ttestt puurpoose. TTrannsacctioonBuundlle aargss = newwTraansaactiionBBunddle(inttentt.geetExxtraas(); llaunnchTTrannsacctioon(sstarrtIdd, aargss,no
49、oNettworrk); reeturrn SServvicee.STTARTT_NOOT_SSTICCKY; 8. ssrc/comm/anndrooid/mmss/trranssacttionn/TrranssacttionnSerrvicce.jjavaaprivvatee vooid lauunchhTraansaactiion(intt seerviiceIId,TTrannsacctioonBuundlle ttxnBBunddle, boooleean noNNetwworkk) Logg.v(TAGG, lauunchhTraansaactiion); iff (nnoNeet
50、woork) LLog.w(TTAG, llaunnchTTrannsacctioon: no nettworrk eerroor!); oonNeetwoorkUUnavvaillablle(sservviceeId,txnnBunndlee.geetTrranssacttionnTyppe(); rretuurn; Meessaage msgg = mSeerviiceHHanddlerr.obbtaiinMeessaage(EVEENT_TRAANSAACTIION_REQQUESST); mssg.aarg11 = serrvicceIdd; mssg.oobj = ttxnBBund
51、dle; iff (LLog.isLLogggablle(LLogTTag.TRAANSAACTIION, Loog.VVERBBOSEE) LLog.v(TTAG, llaunnchTTrannsacctioon: senndinng mmesssagee + mmsg); mSServviceeHanndleer.ssenddMesssagge(mmsg); 9. ssrc/comm/anndrooid/mmss/trranssacttionn/TrranssacttionnSerrvicce.jjavaaprivvatee fiinall cllasss SeerviiceHHanddl
52、err exxtennds Hanndleer puubliic SServviceeHanndleer(LLoopper loooperr) ssupeer(lloopper); /* * Haandlle iincoominng ttrannsacctioonreequeestss. * Thhe iincoominng rrequuestts aare iniitiaateddby thee MMMSC Serrverr orr byy thhe * MMMS CClieent itsselff. */ OOverrridde puubliic vvoidd haandlleMeessa
53、age(Messsaggemssg) iif (Logg.issLogggabble(LoggTagg.TRRANSSACTTIONN, LLog.VERRBOSSE) Logg.v(TAGG, Hanndliing inccomiing messsagge: + mssg); TTrannsacctioon ttrannsacctioon = nuull; sswittch (mssg.wwhatt) casse EEVENNT_QQUITT: geetLooopeer().quuit(); reeturrn; casse EEVENNT_CCONTTINUUE_MMMS_CONNNECCT
54、IVVITYY: syynchhronnizeed (mPrroceessiing) iif (mPrroceessiing.isEEmptty() retturnn; iff (LLog.isLLogggablle(LLogTTag.TRAANSAACTIION, Loog.VVERBBOSEE) LLog.v(TTAG, hhanddle EVEENT_CONNTINNUE_MMSS_COONNEECTIIVITTYevventt.); trry iint ressultt =bbegiinMmmsCoonneectiivitty(); iif (ressultt != Phhonee.A
55、PPN_AALREEADYY_ACCTIVVE) Logg.v(TAGG, Exttenddingg MMMS cconnnecttiviity retturnned + reesullt + innsteead of APNN_ALLREAADY_ACTTIVEE); / Jusst wwaitt foor cconnnecttiviity staartuup wwithhoutt / anyy neewreequeest of APNN swwitcch. retturnn; cattch (IOOExccepttionn e) LLog.w(TTAG, AAtteemptt too ex
56、xtennd uuse of MMSS coonneectiivittyfaaileed); rretuurn; / Reestaart timmer senndMeessaageDDelaayedd(obbtaiinMeessaage(EVEENT_CONNTINNUE_MMSS_COONNEECTIIVITTY), AAPN_EXTTENSSIONN_WAAIT); reeturrn; casse EEVENNT_DDATAA_STTATEE_CHHANGGED: /* * Iff wee arre bbeinng iinfoormeedthhat connnecctivvityy haa
57、s bbeenn esstabblisshedd * too allloww MMMS ttraffficc,thhen prooceeed wwithh prroceessiing thee peendiing * trranssacttionn, iif aany. */ iff (mmConnnecctivvityyLisstenner = nulll) rretuurn; NeetwoorkIInfoo innfo = mmConnnecctivvityyLisstenner.gettNettworrkInnfo(); iff (LLog.isLLogggablle(LLogTTag.
58、TRAANSAACTIION, Loog.VVERBBOSEE) LLog.v(TTAG, HHanddle DATTA_SSTATTE_CCHANNGEDD evventt: + inffo); / Chheckk avvaillabiilitty oof tthe mobbilee neetwoork. iff (inffo = nnulll) | (inffo.ggetTTypee() != CConnnecttiviityMManaagerr.TYYPE_MOBBILEE_MMMS) iif (Logg.issLogggabble(LoggTagg.TRRANSSACTTIONN, L
59、Log.VERRBOSSE) Logg.v(TAGG, typpe iisnoot TTYPEE_MOOBILLE_MMMS, baail); rretuurn; iff (!inffo.iisCoonneecteed() iif (Logg.issLogggabble(LoggTagg.TRRANSSACTTIONN, LLog.VERRBOSSE) Logg.v(TAGG, TTYPEE_MOOBILLE_MMMS nott coonneecteed, baiil); rretuurn; TrranssacttionnSetttinngs setttinngs = nnewTTrannsa
60、cctioonSeettiingss( TraansaactiionSServvicee.thhis,inffo.ggetEExtrraInnfo(); / Iff thhis APNN dooesnnt havve aan MMMSCC, wwaitt foor oone thaat ddoess. iff (TTexttUtiils.isEEmptty(ssetttinggs.ggetMMmsccUrll() iif (Logg.issLogggabble(LoggTagg.TRRANSSACTTIONN, LLog.VERRBOSSE) Logg.v(TAGG, emppty MMSSC
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 攔標(biāo)價(jià)編制合同模板
- 閥門螺栓采購(gòu)合同模板
- 香煙包裝采購(gòu)合同模板
- 原材料獨(dú)家合同模板
- 建設(shè)工程施工合同合同模板
- 鍛打加工合同模板
- 黃山場(chǎng)地租賃合同模板
- 大額電腦采購(gòu)合同模板
- 燈光節(jié)合同模板
- 雨篷合同模板
- 2型糖尿病患者生活方式自我管理處方范例
- 電子政務(wù)考試題庫(kù)與答案
- 前置胎盤伴失血性休克的演練腳本
- 小學(xué)五年級(jí)體育與健康課教案全冊(cè)
- 工程建設(shè)監(jiān)理收費(fèi)標(biāo)準(zhǔn)(發(fā)改價(jià)格【2007】670號(hào))
- DLT 633-1997中華人民共和國(guó)電力行業(yè)標(biāo)準(zhǔn)農(nóng)電事故調(diào)查統(tǒng)計(jì)規(guī)程
- 美術(shù)鑒賞原始主義野獸派達(dá)達(dá)主義超現(xiàn)實(shí)主義賞
- 2024年廣西高職單招職業(yè)適應(yīng)性測(cè)試試題
- 生態(tài)損害賠償培訓(xùn)課件
- 生涯規(guī)劃教育實(shí)踐研究
- 2021年三中全會(huì)知識(shí)競(jìng)賽題庫(kù)
評(píng)論
0/150
提交評(píng)論