Android接收彩信时解析PDU的过程记录
来源:互联网 发布:火车票网络订票时间 编辑:程序博客网 时间:2024/06/14 05:15
彩信是以PDU数据包的方式传输的,因此接收彩信的过程也就是解析PDU的过程,解析PDU的方法在PduParser.parse()中。通过HTTP请求下载到彩信的PDU,装入到ByteArrayInputStream字节流中,对该字节流按照PDU的数据包格式逐一解析。
1、通过protected PduHeaders parseHeaders(ByteArrayInputStream pduDataStream){...}方法,获取PDU的包头
2、protected PduBody parseParts(ByteArrayInputStream pduDataStream) {...}方法获取PDUbody,body中包含了彩信的所有附件Part
protected PduBody parseParts(ByteArrayInputStream pduDataStream) { PduBody body = new PduBody(); int count = parseUnsignedInt(pduDataStream);//获取Part的个数 for(int i = 0; i < count; i++){ /* parse part's content-type */ HashMap<Integer, Object> map = new HashMap<Integer, Object>(); byte[] contentType = parseContentType(pduDataStream, map);//parseContentType中调用parseContentTypeParams方法,会解析出Part相关的各个字段,包括name,cid,cl等等 /* get name parameter */ byte[] name = (byte[]) map.get(PduPart.P_NAME); if (null != name) { part.setName(name); } /* get charset parameter */ Integer charset = (Integer) map.get(PduPart.P_CHARSET); if (null != charset) { part.setCharset(charset); } //通过类似的方式将各个字段放入part中 //接下来将附件的文件内容存入文件 }}
3、通过上面的方法,解析出彩信的所有内容,然后通过PduPersist.persist()方法将彩信内容写入数据库,该方法会调用如下方法,逐一将PduPart写入数据库
public Uri persistPart(PduPart part, Uri uri, HashMap<Uri, InputStream> preOpenedFiles){ ContentValues values = new ContentValues(); values.put(Part.CHARSET, part.getCharset()); ...//依次获取各个字节 //最后insert到数据库}
0 0
- Android接收彩信时解析PDU的过程记录
- 还原Android PDU彩信
- 短信接收--短信接收的pdu解析
- 高通android 7.0彩信发送过程中使用到的google pdu
- 查询备份Android PDU彩信
- android的收彩信通知的过程解析
- 彩信MMS PDU 的解码
- Android短信源码分析 --PDU解析过程
- Android短信源码分析 --PDU解析过程
- Android 短信 彩信 wap push的接收
- Android 短信 彩信 wap push的接收
- 短信接收--Android彩信的接收流程(应用层)
- 短信、长短信、彩信的PDU
- 彩信的通知短信PDU数据分析
- 短信、长短信、彩信的PDU
- android 彩信接收到附件的下载原理分析
- android 彩信接收到附件的下载原理分析
- android 彩信接收到附件的下载原理分析
- 局部内部类+外部类访问final变量+final 回顾
- hdu--1226(bfs+记录路径)
- Java 数组
- 使用Node.js的socket.io模块开发实时web程序
- hibernate第一个实例
- Android接收彩信时解析PDU的过程记录
- kinect2.0(二)读取彩色图像
- HDU 5313 Bipartite Graph
- 10.Spring MVC4.1-异步请求处理(包含兼容浏览器的服务器端推送)
- 贪吃蛇小游戏(JAVA)
- UI_触摸事件
- nyoj--18--The Triangle(dp水题)
- opencv 漫水填充运用
- Lowest Common Ancestor in a Binary Tree