国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android Mms之:PDU的使用詳解

2020-04-11 12:22:29
字體:
來源:轉載
供稿:網友
Android當中的Mms對MMS(Multimedia Messaging Service)的操作關乎MMS協議部分都是通過Frameworks中提供的API來完成的:com.google.android.mms這個包在SDK中是不開放的,只能供內部程序使用,它封裝了所有MMS所需要的API。
這個包就是Android中對MMS協議的實現,包括一些數據結構:GenericPdu,MultimediaMessagePdu,SendReq,SendConf,NotificationInd,RetrieveConf,PduHeaders,PduBody,PduPart等。也包括操作這些數據的類:PduPersister,PduParser和PduComposer。PduPersister主要供給Android內部的應用程序使用;而PduParser和PduComposer會涉及到PDU相關的協議,會與MMSC或其他平臺有相互影響(比如所打包的字節流是否符合標準,能否被其他平臺成功解析和識別等)
這個包的功能就是在發送時把多媒體數據打包成標準MMSC能識別的PDU格式數據,在接收時把PDU數據包解析出來以供更加方便的應用程序使用,同時也提供一些存儲上的接口,比如把PDU保存到數據庫,從數據庫加載出PDU。

ClassPurpose
PduPersister用于管理PDU存儲
PduParser用于解析PDU
PduComposer用于生成PDU

PduPersister: 用于管理PDU存儲,關鍵的方法:

Return
Method
Description
PduPersister
getPduPersister(Context)
Get the object
Uri
persist(GenericPdu, Uri)
把一個GenericPdu保存到Uri所指定的數據庫中,返回指向新生成數據的Uri
GenericPdu
load(Uri)
從數據庫把Uri所指的數據加載出來成一個GenericPdu對象
Uri
move(Uri, Uri)
把Pdu從一個地方移到另一個地方,比如從草稿箱移動到發件箱,當MMS已發送時。

為什么會要把PDU的存儲也封裝成PduPersister呢?因為PDU的存儲方式 是放在標準的SQLiteDatabase中,通過TelephonyProvider,而SQLiteDatabase中存儲不能以直接的PDU的字節流來存儲,必須要把PDU拆解成為可讀的字段,因此在存儲PDU和從存儲加載PDU的過程 中涉及到PDU數據上面的處理,因此封裝出來,更方便使用。
PduParser:用于把PDU字節流解析成為Android可識別的GenericPdu

ReturnMethodDescription
PduParserPduParser(byte[])Construct an object
GenericPduparse()Parse the PDU byte stream into Android PDU GenericPdu

PduComposer:把GenericPdu打包生成PDU字節流

ReturnMethodDescription
PduComposerPduComposer(Context, GenericPdu)Construct an object
byte[]make()Transfer the GenericPdu into a PDU byte stream
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙川县| 泰顺县| 西贡区| 淅川县| 尼勒克县| 凤冈县| 正蓝旗| 长宁县| 鸡东县| 繁昌县| 锡林郭勒盟| 留坝县| 巨鹿县| 米脂县| 岳池县| 仪征市| 玉门市| 潍坊市| 盈江县| 方山县| 青州市| 遵化市| 高尔夫| 大同市| 黔东| 乐亭县| 青铜峡市| 怀化市| 象山县| 武胜县| 准格尔旗| 龙门县| 旌德县| 隆德县| 怀安县| 新乐市| 清徐县| 嵩明县| 通河县| 麻阳| 陕西省|