android开发之关于复制短信到sim卡的分析

android开发之关于复制短信到sim卡的分析

ID:18348298

大小:76.98 KB

页数:8页

时间:2018-09-16

android开发之关于复制短信到sim卡的分析_第1页
android开发之关于复制短信到sim卡的分析_第2页
android开发之关于复制短信到sim卡的分析_第3页
android开发之关于复制短信到sim卡的分析_第4页
android开发之关于复制短信到sim卡的分析_第5页
资源描述:

《android开发之关于复制短信到sim卡的分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、www.accpbj.comAndroid开发之关于复制短信到SIM卡的分析    在framework层下的SmsManager类中,封装好了一个copyMessageToIcc方法,只要正确地调用它便可以将短信存储到SIM卡中。SmsManagersmsManager=SmsManager.getDefault();//用来获取一个SmsManager对象现在我们来看一下copyMessageToIcc(byte[]smsc,byte[]pdu,intstatus)这个方法的三个参数:  1)byte[]smsc:短信服务

2、中心的地址,个人认为在复制到SIM卡过程中可以为空。  2)byte[]pdu:中文翻译是协议数据单元,这个参数最为重要,一会我们会做详细地解释说明。  3)intstatus:短信存储在Icc卡上的状态,有4种状态,1是已读,3是未读,5是已发送,7是未发送。  其实要想将将短信正确地存储到SIM卡上,pdu这个参数尤为重要,下面我们就来分析一下!  首先先看一下复制短信到SIM卡时log显示的正确pdu:  00000d91683155724572f9000b111170919143230a4e0b73ed4e864e48

3、ff1f  原本上面的pdu是完整连续,为了方便解释说明,特意加了空格区分开来。  00SCAddress短信服务中心地址,通常我们发送短信时会发送一个pdu到短信服务中心,然后短信服务中心会对pdu进行一些处理再发  送到目的手机,这其中就包括增加了这个SCAddress和后面会介绍的时间戳。  00PDUTypepdu的第一个八位位组,即一个八位的二进制数转变成十六进制而来,每一位代表什么意思呢?由高到低依次代表RP(应答  路径)、UDHI(用户数据头标识)、SRR(状态请求报告)、VPF(有效期格式,2位)、RD(拒绝

4、副本)、MTI(信息指示类型,2位),在这里我们其实只  要全部将其设置为0就好,于是便显示为00。  0d91683155724572f9这一段代表了目的手机的号码,0d代表后面的地址长度(二进制下为13),那么这十三个数是怎么算的呢?其实手机号为  13552754279,而91代表短消息中心地址的类型(81&h表示国内,91&h表示国际)。所以0d表示的就是后面683155724572f9的长度(f9中的f是用来  凑偶数位的)。good,noloosening.6.5.2DCSsidewiringtocompletet

5、heenclosureandtheothersideafterthewiringiscompleted,DCSwithintheenclosurewhenthepowermoduleshouldbeloosenedorthepowergoesout.6.6lowvoltagecableterminalmaking6.6.1firstwww.accpbj.com  00PID协议标识,通常设为00就好。  0bDCS数据编码方案,含有中文字符的话一般默认都为0b,即00001011转化而来,具体每一位的含义暂时不做详细解释。  

6、11117091914323时间戳,代表的时间为11年11月07日19时19分34秒,后面的23表示时区(什么这么表示尚在研究中,可以写死,感觉意义  不大)。  0a4e0b73ed4e864e48ff1f短信的具体内容,其中0a表示信息的长度。  好了,关于pdu我们分析完了,现在要做的就是如何获取这个pdu并传进copyMessageToIcc方法中。观察源码会发现在  framework/base/telephony/java/com/android/internal/telephony/gsm下的SmsMessage

7、类中有一个getSubmitPdu方法,返回一个SubmitPdu对  象,该对象有encodedScAddress和encodedMessage两个byte[]数组类型的属性,而且在多个地方被用到,和copyMessageToIcc中的参数十分相  似,会不会就是我们要找的呢?经调用后发现,得到的pdu并不正确,但是没有关系,我们可以将其涉及到的方法重写,拼出我们想要的pdu!  我改写的代码如下:  privateSubmitPdugetSubmitPdu(StringscAddress,Stringdestination

8、Address,Stringmessage,  booleanstatusReportRequested,byte[]header,intencoding,longdate){  //Performnullparameterchecks.  if(message==null

9、

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。