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

Android Mms之:PDU的使用詳解

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

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

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

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

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

相關文章

最新評論