当前位置:编程学习 > wap >>

SMS在SIM卡中是如何存储的?

如题 --------------------编程问答-------------------- 看看下面这些数据:
              01 07 91 94 71 06 00 40  34 04 0D 91 94 71 26 30  
    92 89 F0 00 00 60 80 81  12 21 63 80 19 C4 F0 1C  
    94 9E D3 41 E5 B4 1B B4  66 97 D3 EE B2 1C 44 2F  
    CF E9 2E FF FF FF FF FF  FF FF FF FF FF FF FF FF  
    FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  
    FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  
    FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  
    FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  
    FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  
    FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  
    FF FF FF FF FF FF FF FF  FF FF FF FF FF FF FF FF  
    90 00    
这是通过发送命令A0 B2 01 04 B0读取出来的。想读写sim卡里面的数据,可能还要了解一点APDU的知识。
sms在sim就是按pdu来保存的,只是多了一个标志位,来表示当前短信的状态。 --------------------编程问答-------------------- 谢谢l1w1w1 ,那在SIM卡里面怎么区分哪些数据是SMS的哪些数据是电话本的呢? --------------------编程问答-------------------- 有没有这方面的文档资料来学习下? --------------------编程问答-------------------- 有一本专门介绍SIM卡开发的书,建议楼主去买来学习一下,,以前我看过一下,大部分看不懂..后来就还了.
深圳图书馆有这本书,可以外借. --------------------编程问答-------------------- xiangding你好,你说的那本书叫啥名字呀? --------------------编程问答-------------------- 都是用at指令就可以看到了,打开超级终端,把设备连上

//显示电话本的容量   
  AT+CPBR=?   
  //读取地址1到10电话本信息   
  AT+CPBR=1,10 

读取sms如何怎么存储的  以pdu模式存储的,具体pdu编码http://blog.csdn.net/irala/archive/2007/12/24/1965564.aspx(附源码)
读取sms的at指令
//以pdu模式
at+cmgf=0
//读取单条
at+cmgr=1(1表示sms在sim卡内存的索引,称memory index) sim卡中有几条信息

//读取全部的短信
at+cmgl=4
//读取未读  已读 ....参考at指令集合 不同的设备产商的at指令略有不同
--------------------编程问答-------------------- 至于如何区分短消息和电话本的。它们在sim卡里面有不同的目录的,比如短消息在sim卡的目录是6F3C,电话本是6f3a。比如想访问电话本的话,如果是通过APDU命令的话,先解锁sim卡,再进入TELCOM目录,再选择电话本文件0x6F3A,然后就可用读取它了。至于at命令当然更简单了,估计这个不是你问题的重点。 --------------------编程问答-------------------- 楼上的是行家啊

[code=BatchFile]//READ RECORD
A0 B2 01 04 B0 
01 08 91 68 31 08 10 00 05 F0 04 08 A1 21 32 44 55 00 08 80 40 52 31 35 45 80 04 5F B7 53 4E FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 
90 00 
//A0 B2 01 04 B0 是命令头,CLA = A0表示GSM应用,INS = B2 表示READ RECORD,P1 P2 = 01 04 是参数,P3 = B0 是数据的长度(或返回数据的长度)表示( 176 )
//读记录,P2 = 04 表示绝对记录号,P1 = 01 为记录号,表示第1 条记录P3 = B0 表示后面的数据长度为176 
//--收到的短信,已读
//----08 91 68 31 08 10 00 05 F0 是短信中心号码,表示+8613800100500
//--------------------TON-NPI------------开始
//----91 TON-NPI( 1 0 0 1 0 0 0 1 ),表示
//------bit7为 1 
//------bit6, bit5, bit4是TON(type-of-number),值为 0 0 1 ,表示International number
//------bit3-bit0为NPI(numbering-plan-identification),只有当TON为000, 001, 010的时候NPI才有值,其他应该为0000,值为 0 0 0 1 ,表示ISDN/telephone numbering plan
//--------------------TON-NPI------------结束
//----04 是SMS-DELIEVE type,( 0 0 0 0 0 1 0 0 ),表示
//--------------------SMS-DELIVER-TYPE------------开始
//------bit1, bit0是       TP-MTI(短信类型),值为 0 0 ,表示SMS-DELIVER type( SC to MS direction).
//------bit2是             TP-MMS(多条短信标志,1 为无,0 为有),值为 1 表示No more messages are waiting for the MS in the SC
//------bit4, bit3         暂无意义,值为 0 0 
//------bit5是             TP-SRI(需要回复),值为 0 表示A status report will not be returned to the SME.
//------bit6是             TP-UDHI(数据报头),值为 0 表示The TP-UD field contains only the short message.
//------bit7是             TP-RP(回复地址),值为 0 表示TS-Reply-Path parameter is not set in this deliver.
//--------------------SMS-DELIVER-TYPE------------结束
//----08 A1 21 32 44 55 是TP-OA,表示12234455
//--------------------TON-NPI------------开始
//--------------------TON-NPI------------结束
//----00 TP-PID
//--------------------TP-PID------------开始
//------bit7, bit6为 0 0 
//------bit5-bi50为 0 0 0 0 0 0 表示Short message type 0
//--------------------TP-PID------------结束
//----08 是TP-DCS(00表示压缩英文,04表示未压缩文字,08表示UCS2),
//----80 40 52 31 35 45 80 是TP-SCTS,表示08年04月25日13时53分54秒08时区
//----04 是TP-UDL,表示10进制( 4 ),
//----5F B7 53 4E 表示"德华"
//90 00 是返回状态,表示---成功[/code]

短信格式。
--------------------编程问答-------------------- 不懂 ,也顶 --------------------编程问答-------------------- mark --------------------编程问答-------------------- 来顶8楼 高手出现了 --------------------编程问答-------------------- SMS是保存在EFsms,电话号码是保存在EFadn文件,你可以去3GPP网站下载3GPP11.11看,里面讲SIM卡基础知识
补充:移动开发 ,  移动开发其他问题
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,