0891683108502905f0 71ff008100084724050003d40606 0043004a005181f300310030003000380036ff0c6b216708593165483002
开始一段是短信中心004到结尾是数据内容, 不知道中间那一串是什么, 和我们普通复制进去的格式不太一样,这个短信是自动复制到sim卡的内容, 普通我们复制进去的 71开始的那个位置是00或者01, 不知道中间的要怎么解析. 谁能帮忙看一下?或者提供是哪一份的3GPP协议

解决方案 »

  1.   

    71 ff 00 81 00 08 47  24 050003d40606现在24是头+内容的长度, 前面的也知道了 现在有谁知道 47这个是什么嘛??
      

  2.   

    楼主做过将短信复制到sim卡吧! 
    我是新手,项目要求做这个,网上查了很多资料都没有。楼主如果知道给帮个忙啊!不胜感谢~~~
      

  3.   

    是在android源生代码里面的么?  代码帖出来看看
      

  4.   

    请问你的pdu是怎么获得的啊,我最近也在做这个问题,很是困扰!!
      

  5.   

    请问你的pdu是怎么获得的啊,我最近也在做这个问题,很是困扰!!
      

  6.   

    SmsManager sManager = SmsManager.getDefault();
    SmsMessage.SubmitPdu pdu = SmsMessage.getSubmitPdu(scAddr, number, item.mBody, true);
    sManager.copyMessageToIcc(pdu.encodedScAddress, pdu.encodedMessage, 1)
    这样操作能把短信复制到sim卡,但是信息显示的时间会出现错误。
      

  7.   

    getSubmitPdu  这个方法重写一下, 把时间加到pud里面去就可以了.
      

  8.   

    pdu...上面打错了,把下面这一段加在Coding-Scheme这一位的后面.
    ,
    Time then = new Time();
    then.set(mDate); if(then.year < 2000) {
    bo.write(intToGsmBcdByte(then.year - 1900));
    }
    else {
    bo.write(intToGsmBcdByte(then.year - 2000));
    } bo.write(intToGsmBcdByte(then.month + 1)); bo.write(intToGsmBcdByte(then.monthDay));

    bo.write(intToGsmBcdByte(then.hour)); bo.write(intToGsmBcdByte(then.minute)); bo.write(intToGsmBcdByte(then.second));

    bo.write(0x0);static byte intToGsmBcdByte(int time) { return (byte)((byte)(time%10) << 4 | ((byte)(time/10) & 0x0f));

    }
      

  9.   

    哥们,  这个写到可以写到sim卡上,但是读出来时,异常了pdu.message解析异常了。。