发送短信时,每条短信只能发送70个字符,Sting content="发送短信时,每条短信只能发送70个字符,哪位大侠能帮解决下,这里不止70个字符了,该如何解决?十万火急";

解决方案 »

  1.   

    拆成两条,发两次。
    只能这样,以前老款的手机,对于这种字符数大于140个字符,中文的话就是70了,都是收到两条的。
    现在估计是在接受的时候再把两条拼起来。至于140字符这个限制,有说是移动什么定的,也有说是什么协议基准定的,具体我就不清楚了
    下面的你可以参考下。根据PHASE II的标准,在GSM 03.40里规定短信长度标识为一个字节,最大为FF既255,所以一条短信最长为255字节,去掉短信头(包括短信状态,短信中心,源地址,目的地址,TIMESTAMP,有效期),实际可用长度为80字节,如果是老的7BIT编码还能再长一点,但现在的手机没有使用这种编码方式的了,输入字符再多也只是拆分成几条发送而已
      

  2.   

    呵呵,没有不结贴,我刚上班,我的意思是不管短信有多长,每70个字符就作为一条短信发送,长的就做多次发送,字符串名字content,调用的方法是SendHelper.sendMessage(mobile,content);谢谢各位的关注啊~帮忙看下怎么写这个循环截取
      

  3.   

    lz用的是什么协议开发发短信功能?如果是cmpp我能帮你下。
      

  4.   

    不好意思,呵呵,我也不知道用什么协议开发的,我这边只管调用接口,现在只需要把字符串截每截取70个就调用一次发送方法,
    for(int i=0;i<content.length();i++)
    {
    int index = 0;
    String str = content.substring(index, content.length()/70);
    System.out.println("str------"+str);
    index+=70;
                            send.sendMsg(mobile,str);
    }这是我现在写的,结果不对,不知道该怎么写了
      

  5.   

    你到网上搜搜如何用cmpp发长短信。资料很多。
      

  6.   


    String yourContent = "你的短信内容";
    List<String> messageList = new ArrayList<String>();
    if(yourContent.length() > 70){
    while(yourContent.length() > 70){
    String tempContent = yourContent.substring(0,66)+"(未完)";
    messageList.add(tempContent);
    yourContent = yourContent.substring(66);
    if(yourContent.length() < 67){
    messageList.add(yourContent+"(完)");
    break;
    }
    if(yourContent.length() > 67 && yourContent.length() < 70){
    messageList.add(yourContent);
    break;
    }
    }
    }else{
    messageList.add(yourContent);
    }
    //遍历messageList循环发送
    for(String s : messageList){
    System.out.println(s);
    }