欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android Mms之:PDU的使用詳解

 更新時(shí)間:2013年05月22日 10:21:00   作者:  
本篇文章是對(duì)PDU的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
Android當(dāng)中的Mms對(duì)MMS(Multimedia Messaging Service)的操作關(guān)乎MMS協(xié)議部分都是通過(guò)Frameworks中提供的API來(lái)完成的:com.google.android.mms這個(gè)包在SDK中是不開(kāi)放的,只能供內(nèi)部程序使用,它封裝了所有MMS所需要的API。
這個(gè)包就是Android中對(duì)MMS協(xié)議的實(shí)現(xiàn),包括一些數(shù)據(jù)結(jié)構(gòu):GenericPdu,MultimediaMessagePdu,SendReq,SendConf,NotificationInd,RetrieveConf,PduHeaders,PduBody,PduPart等。也包括操作這些數(shù)據(jù)的類:PduPersister,PduParser和PduComposer。PduPersister主要供給Android內(nèi)部的應(yīng)用程序使用;而PduParser和PduComposer會(huì)涉及到PDU相關(guān)的協(xié)議,會(huì)與MMSC或其他平臺(tái)有相互影響(比如所打包的字節(jié)流是否符合標(biāo)準(zhǔn),能否被其他平臺(tái)成功解析和識(shí)別等)
這個(gè)包的功能就是在發(fā)送時(shí)把多媒體數(shù)據(jù)打包成標(biāo)準(zhǔn)MMSC能識(shí)別的PDU格式數(shù)據(jù),在接收時(shí)把PDU數(shù)據(jù)包解析出來(lái)以供更加方便的應(yīng)用程序使用,同時(shí)也提供一些存儲(chǔ)上的接口,比如把PDU保存到數(shù)據(jù)庫(kù),從數(shù)據(jù)庫(kù)加載出PDU。

Class Purpose
PduPersister 用于管理PDU存儲(chǔ)
PduParser 用于解析PDU
PduComposer 用于生成PDU

PduPersister: 用于管理PDU存儲(chǔ),關(guān)鍵的方法:

Return
Method
Description
PduPersister
getPduPersister(Context)
Get the object
Uri
persist(GenericPdu, Uri)
把一個(gè)GenericPdu保存到Uri所指定的數(shù)據(jù)庫(kù)中,返回指向新生成數(shù)據(jù)的Uri
GenericPdu
load(Uri)
從數(shù)據(jù)庫(kù)把Uri所指的數(shù)據(jù)加載出來(lái)成一個(gè)GenericPdu對(duì)象
Uri
move(Uri, Uri)
把Pdu從一個(gè)地方移到另一個(gè)地方,比如從草稿箱移動(dòng)到發(fā)件箱,當(dāng)MMS已發(fā)送時(shí)。

為什么會(huì)要把PDU的存儲(chǔ)也封裝成PduPersister呢?因?yàn)镻DU的存儲(chǔ)方式 是放在標(biāo)準(zhǔn)的SQLiteDatabase中,通過(guò)TelephonyProvider,而SQLiteDatabase中存儲(chǔ)不能以直接的PDU的字節(jié)流來(lái)存儲(chǔ),必須要把PDU拆解成為可讀的字段,因此在存儲(chǔ)PDU和從存儲(chǔ)加載PDU的過(guò)程 中涉及到PDU數(shù)據(jù)上面的處理,因此封裝出來(lái),更方便使用。
PduParser:用于把PDU字節(jié)流解析成為Android可識(shí)別的GenericPdu

Return Method Description
PduParser PduParser(byte[]) Construct an object
GenericPdu parse() Parse the PDU byte stream into Android PDU GenericPdu

PduComposer:把GenericPdu打包生成PDU字節(jié)流

Return Method Description
PduComposer PduComposer(Context, GenericPdu) Construct an object
byte[] make() Transfer the GenericPdu into a PDU byte stream

相關(guān)文章

最新評(píng)論